Соединение с базой данных SQL

Задача
Необходимо получить доступ к 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 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), класс DB_Sql в PHPLib (http://phplib.sourceforge.net/) и MDB (http://pear.php.net/package-info. php?package=MDB).

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Автоматическое присваивание уникальных значений идентификаторов
Выполнение запросов к базе данных SQL
Извлечение строк без цикла
Кэширование запросов и результатов
Модификация данных в базе данных SQL

Вернуться в раздел: PHP / 10. Доступ к базам данных