Расширение PHP Data Objects (PDO) определяет легкий и согласованный интерфейс PHP для доступа к базам данных.
PDO обеспечивает уровень абстракции доступа к данным, что означает, что независимо от того, какая база данных используется, для запроса и получения данных можно использовать одни и те же функции (методы).
PDO выпущен с PHP5.1 и также может использоваться в расширении PECL PHP5.0, но не может работать в предыдущих версиях PHP.
Вы можете проверить, установлено ли расширение PDO, с помощью функции PHP phpinfo().
В Unix или Linux вам необходимо добавить следующее расширение:
расширение = pdo.so
PDO и все основные драйверы поставляются с PHP в виде общих расширений. Чтобы активировать их, просто отредактируйте файл php.ini и добавьте следующее расширение:
расширение = php_pdo.dllКроме того, существуют различные расширения базы данных, соответствующие следующему:
;extension=php_pdo_firebird.dll;extension=php_pdo_informix.dll;extension=php_pdo_mssql.dll;extension=php_pdo_mysql.dll;extensio n=php_pdo_oci.dll;расширение=php_pdo_oci8.dll;расширение=php_pdo_odbc.dll;расширение=php_pdo_pgsql.dll;расширение=php_pdo_sqlite.dll
После установки этих конфигураций нам необходимо перезапустить PHP или веб-сервер.
Далее давайте рассмотрим конкретные примеры. Ниже приведен пример использования PDO для подключения к базе данных MySql:
<?php$dbms='mysql'; //Тип базы данных $host='localhost'; //Имя хоста базы данных $dbName='test'; //Используемое имя пользователя базы данных $user='root'; $pass=''; //Соответствующий пароль $dsn="$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //Инициализируем объект PDO echo "Соединение успешно<br/>"; /*Вы также можете выполнить операцию поиска foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row) ; //Вы можете использовать echo($GLOBAL); чтобы увидеть эти значения} */ $dbh = null;} catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>");}//По умолчанию это не длинное соединение. Если вам нужно длинное соединение с базой данных, вам нужно добавить в конце параметр: array(PDO::ATTR_PERSISTENT =>. true) Это будет выглядеть так: $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>
Это очень просто. Далее давайте более подробно рассмотрим конкретные инструкции PHP PDO:
Предопределенные константы
Управление соединением PHP PDO
Транзакции PHP PDO и автоматическая фиксация
Подготовленные операторы PHP PDO и хранимые процедуры
Ошибки PHP PDO и обработка ошибок
Большие объекты PHP PDO (LOB)
Класс ПДО:
PDO::beginTransaction — начать транзакцию
PDO::commit — Зафиксировать транзакцию
PDO::__construct — Создать экземпляр PDO, представляющий соединение с базой данных
PDO::errorCode — Получает SQLSTATE, связанный с последней операцией дескриптора базы данных
PDO::errorInfo — Возвращает информацию об ошибке последней операции с базой данных
PDO::exec — Выполняет оператор SQL и возвращает количество затронутых строк
PDO::getAttribute — Получает атрибуты соединения с базой данных
PDO::getAvailableDrivers — Возвращает массив доступных драйверов
PDO::inTransaction — Проверяет, находится ли внутри транзакции
PDO::lastInsertId — Возвращает идентификатор или значение последовательности последней вставленной строки
PDO::prepare — Подготавливает оператор SQL к выполнению и возвращает объект PDOStatement
PDO::query — Выполняет операторы SQL и возвращает объекты PDOStatement, которые можно понимать как наборы результатов.
PDO::quote — Добавляет кавычки в строки в операторах SQL.
PDO::rollBack — откатить транзакцию
PDO::setAttribute — установить атрибуты
Класс PDOStatement:
PDOStatement::bindColumn — Привязывает столбец к переменной PHP
PDOStatement::bindParam — Привязывает параметр к указанному имени переменной
PDOStatement::bindValue — Привязывает значение к параметру
PDOStatement::closeCursor — Закрывает курсор, чтобы оператор можно было выполнить снова.
PDOStatement::columnCount — Возвращает количество столбцов в наборе результатов
PDOStatement::debugDumpParams — Распечатывает команду предварительной обработки SQL
PDOStatement::errorCode — Получите SQLSTATE, связанный с последней операцией дескриптора оператора
PDOStatement::errorInfo — Получает расширенную информацию об ошибке, связанную с последней операцией дескриптора оператора
PDOStatement::execute — выполнить подготовленный оператор
PDOStatement::fetch — Получить следующую строку из набора результатов
PDOStatement::fetchAll — Возвращает массив, содержащий все строки в наборе результатов
PDOStatement::fetchColumn — Возвращает один столбец из следующей строки в наборе результатов.
PDOStatement::fetchObject — Получает следующую строку и возвращает ее как объект.
PDOStatement::getAttribute — Получить атрибут оператора
PDOStatement::getColumnMeta — Возвращает метаданные для столбца в наборе результатов
PDOStatement::nextRowset — Переход к следующему набору строк в дескрипторе оператора с несколькими наборами строк
PDOStatement::rowCount — Возвращает количество строк, на которые повлиял предыдущий оператор SQL
PDOStatement::setAttribute — Установить атрибут оператора
PDOStatement::setFetchMode — Устанавливает режим выборки по умолчанию для операторов.