PHP PDO
Расширение PHP Data Objects (PDO) определяет легковесный, единообразный интерфейс для доступа PHP к базам данных.
PDO предоставляет уровень абстракции доступа к данным, что означает, что независимо от того, какую базу данных вы используете, вы можете применять одни и те же функции (методы) для выполнения запросов и получения данных.
PDO был выпущен вместе с PHP 5.1 и также доступен в расширении PECL для PHP 5.0; он не может работать на более ранних версиях PHP.
Установка PDO
Вы можете использовать функцию PHP phpinfo(), чтобы проверить, установлено ли расширение PDO.
Установка PDO в системах Unix
В Unix или Linux необходимо добавить следующие расширения:
extension=pdo.so
Пользователи Windows
PDO и все основные драйверы распространяются с PHP как разделяемые расширения. Чтобы активировать их, просто отредактируйте файл php.ini и добавьте следующие расширения:
extension=php_pdo.dllКроме того, существуют следующие соответствующие расширения для баз данных:
;extension=php_pdo_firebird.dll ;extension=php_pdo_informix.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll
После настройки этих конфигураций необходимо перезапустить PHP или веб-сервер.
Теперь давайте рассмотрим конкретный пример. Ниже приведён пример использования PDO для подключения к базе данных MySQL:
Пример
$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 ("Ошибка!: " . $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: ошибки и обработка ошибок
- Большие объекты (LOBs) в PHP PDO
- Класс PDO:
- 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— Устанавливает режим извлечения по умолчанию для инструкции.