Урок - Знакомство с PDO.

Главная » Курсы » Курс PHP5, PDO - PHP Data Objects » Урок - Знакомство с PDO.

Обучающий онлайн курс
PHP5, PDO - PHP Data Objects

Лицензия: Копирование запрещено.
↑ PHP5, PDO - PHP Data Objects
  Урок - Знакомство с PDO.  
Текущий урок - первый.   Следующий урок →
Урок - Установка PDO

Введение в PHP PDO

PHP Data Objects (PDO) — это расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных.

PDO входит в состав PHP с версии 5.1, и поставлялось как PECL-расширение для PHP с версии 5.0. В более ранних версиях PDO не работает, так как требует новых функций ядра PHP-интерпретатора.

PDO предлагает единые методы для работы с различными базами данных, хотя текст запросов может немного отличаться. Так как многие СУБД реализуют свой диалект SQL, который в той или иной мере поддерживает стандарты ANSI и ISO, то при использовании простых запросов можно добиться совместимости между различными языками. На практике это означает, что можно достаточно легко перейти на другую СУБД, при этом не меняя или частично изменяя код программы.

PDO не использует абстрактных слоёв для подключения к БД, наподобие ODBC, а использует для разных БД их «родные» драйверы, что позволяет добиться высокой производительности. В настоящее время для PDO существуют драйверы практически ко всем общеизвестным СУБД и интерфейсам. Впрочем, есть и драйвер для подключения к ODBC.

Имя драйвераПоддерживаемые СУБД
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird / Interbase 6
PDO_IBM IBM DB2
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x, MySQL 4.x, MySQL 5.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC и win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 2 и SQLite 3
PDO_4D 4D

Каждый драйвер базы данных, который реализует интерфейс PDO может выставить специфичные для используемой базы данных характеристики в качестве расширений регулярных функций. Обратите внимание, что вы не можете исполнять любые функции для базы данных с использованием расширения PDO непосредственно, вы обязательно должны использовать специфичный для базы данных PDO драйвер для доступа к серверу базы данных.

Преимущества PDO

  • Общий интерфейс доступа к любому числу БД.
  • Скорость. PDO - Самый быстрый в работе с базами данных модуль, позволяющий работать с различными базами данных, такими как MySQL от v3, PostgreSQL, SQLite от v2, ODBC, DB2, Oracle, Firebird.
  • Безопасность. Наиболее полезная вещь - то, что с PDO повышена безопасность во избежание выполнения SQL-инъекций(SQL-Injection).
  • Обработка ошибок. Мы можем использовать механизм исключений или механизм критических ошибок.
  • Расширяемость. С mysql_*() функциями приходилось использовать базу данных mysql. Если в будущем нам понадоббится использовать другую базу данных - тогда придется переписать все наши соединения, запросы и код выдачи. Если вы используете MySQL с PDO, это не имеет значения для нас, нам придется переписать только часть кода базы данных.
  • Простота. Упрощенный интерфейс работы Базами данных.

Практика применения PHP PDO

Нет смысла говорить про PDO, если не попытаться использовать его на практике, вот мы и попытаемся.

Для работы нам потребуется установленный PDO-драйвер сервера базы данных, с которой мы хотим работать. В наших примерах мы используем драйвер mySql, то есть нам нужно, чтобы PHP был собран с указанием ключа --with-pdo-mysql. Расширение PDO компилируется по умолчанию, так что всё, что вам надо — это указать базы данных, к которым вам потребуется доступ. Кроме MySQL, существуют драйвера для PostgreSQL (--with-pdo-pgsql), Oracle (--with-pdo-oci), и так далее.

Подробная установка PDO рассматривается в следующем уроке.

Наш первый пример будет выполнять соединение с сервером MySQL под именем пользователя "user" и с паролем "psw", открывать базу данных "dbase" и сохранять соединение для дальнейшего использования.

define('PDO_DSN', 'mysql:dbname=dbase;host=127.0.0.1');
define('PDO_USERNAME', 'root');
define('PDO_PASSWORD', 'psw');
$pdo = new PDO( PDO_DSN, PDO_USERNAME, PDO_PASSWORD);

Это всё, что нужно сделать, чтобы подключиться и приготовиться к выполнению запросов. Если вы привыкли вызывать mysql_connect() и mysql_select_db(), то вы заметите, что тут их параметры были объединены в единый «источник данных» (DSN) в стиле Pear::DB. PDO DSN состоит из нескольких пар параметр=значение, перед которыми стоит тип сервера подключаемой базы данных. В этом примере:

  • mysql - тип сервера
  • dbase — имя нужной базы данных (параметр dbname)
  • 127.0.0.1 — IP адрес сервера (параметр host)
  • root - имя пользователя
  • psw — пароль.

 

↑ PHP5, PDO - PHP Data Objects
  Урок - Знакомство с PDO.  
Текущий урок - первый.   Следующий урок →
Урок - Установка PDO