Необходимо получить доступ к SQL-базе данных.
Это делается при помощи метода connect() из PEAR DB:
require 'DB.php';
$dsn = 'mysql://david:foo!bar@localhost/test';
$dbh = DB::connect($dsn);
if (DB::isError($dbh)) { die ($dbh->getMessage()); }
PEAR DB можно загрузить с сайта PEAR по адресу:
http://pear.php.net/package-info.php?package=DB
После загрузки DB-функций с DB.php соединитесь с базой данных посредством функции DB::connect(), выполните запрос с помощью метода $dbh->query() и извлеките каждую строку с помощью метода $sth->fetchRow(). Пример в разделе «Решение» соединяется с базой данных
MySQL. Чтобы соединиться с Oracle вместо MySQL, достаточно изменить значение переменной $dsn. Эта переменная содержит имя источника данных (DSN), строку, которая определяет, с какой базой и каким образом следует соединяться. Ниже приведено ее значение для Oracle:
$dsn = 'oci8://david:foo!bar@ORAINST';
Для базы данных PostgreSQL значение переменной $dsn равно:
$dsn = 'pgsql://david:foo!bar@unix(/tmp/.s.PGSQL.5432)/test';
DSN для PostgreSQL немного сложнее, поскольку оно определяет, что соединение должно быть выполнено через локальный сокет UNIX (имя пути к которому равно /tmp/.s.PGSQL.5432), а не TCP/IP-соединение. Обычно имя источника данных имеет вид:
database_interface://user:password@hostname/database
Часть database_interface DSN представляет тип используемой базы данных, наример, Oracle, MySQL и т. д. В настоящее время PEAR поддерживает 10 машин баз данных, которые перечислены в таблице:
Таблица: Машины баз данных PEAR DB
Name | Database |
---|---|
fbsql | FrontBase |
ibase | Interbase |
ifx | Informix |
msql | Mini-SQL |
mssql | Microsoft SQL Server |
mysql | MySQL |
oci8 | Oracle (использует интерфейс OCI8) |
odbc | ODBC |
pgsql | PostgreSQL |
sybase | Sybase |
Для использования конкретной машины баз данных PEAR DB необходимо собрать PHP с поддержкой базы данных, соответствующей выбранной машине. Обратите внимание, что для использования машины
баз данных Oracle OCI8, в PHP необходимо включить расширение
OCI8 (--with-oci8 при компиляции). Старое Oracle-расширение PHP (--with-oracle) не совместимо с PEAR DB.
Строки user и password представляют имя пользователя и пароль, необходимые для соединения с базой данных. Строка hostname обычно представляет собой имя хоста, на котором запущена база данных, но она может быть также именем экземпляра (для Oracle) или применявшимся
ранее обозначением локального сокета с соблюдением специального
синтаксиса. Строка database предназначена для хранения имени логической базы данных, такого, которое бы определялось в параметре dbname функции pg_connect() или в аргументе функции mysql_select_db().
PEAR DB ни в коем случае не единственный уровень абстракции базы
данных для PHP. Мы выбрали его только потому, что с ним легко работать и он широко распространен. Другие уровни абстракции базы данных включают ADOdb ( http://php.weblogs.com/ADODB), Metabase (http://en.static.phpclasses.org/browse.html/package/20.html), класс
B_Sql в PHPLib (http://phplib.sourceforge.net/) и MDB (http://pear.php.net/package-info.php?package=MDB).