PDO - расширение предоставляющее интерфейс для доступа к различным базам данных
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
PDO (PHP Data Objects) – является PHP расширением, предоставляющее разработчику интерфейс для доступа к различным базам данных.
PDO включает поддержку различных драйверов для работы со множеством баз данных. Такими как:
PDO предлагает единые методы работы с перечисленными базами данных (текст запросов определенной части баз данных может отличаться).
Благодаря методу PDO::prepare появилась возможность борьбы с sql инъекциями. А именно большую роль играют placeholder’ы. Использование placeholder’ов делает невозможным проведение sql инъекций.
Соединение с базой данных MySql:
Для соединения с базой данных необходимо создать объект PDO и передать ему информацию о DNS источнике данных и указать логин и пароль (если они существуют).
Подключение:
Экземпляр объекта PDO принимает четыре параметра:
Первый параметр. DNS – имя источника данных, содержащее информацию, необходимую для соединения с базой данных.
Имя источника данных состоит из имени драйвера, двоеточия, адреса хост машины на которой находится база данных, точки с запятой и названием базы данных.
Второй параметр. $user – логин пользователя базы данных.
Третий параметр. $pass – пароль пользователя базы данных (Если есть).
Четвертый (необязательный) параметр. $array_options - Массив настроек подключения (специфичный для драйвера). Указывается как ключ => значение.
Атрибуты настроек подключения для драйвера MySql:
PDO::MYSQL_ATTR_LOCAL_INFILE – если этот атрибут установлен в TRUE, то при чтении строк из текстового файла, выполнение их вставки в таблицу происходит с очень высокой скоростью.
PDO::MYSQL_ATTR_INIT_COMMAND – с помощью данного атрибута можно автоматически выполнить команду при подключении к серверу. Также команда будет автоматически выполнена при переподключении.
Часто с помощью данного атрибута передают кодировку, используемую для работы с базой данных.
Обработка ошибок:
В случае успешного соединения возвращается объект PDO. Если соединение с базой данных не удается, выбрасывает исключение PDOException.
Ошибку можно перехватить с помощью конструкции try catch и использовать ее на свое усмотрение. Прошу заметить, что ответственность за перехват исключений лежит полностью на вас, так как ошибки, выводимые с помощью данной конструкции, могут с играть в пользу злоумышленников.
Закрытие соединения:
Для завершения соединения, необходимо переменной, в которой хранится объект PDO, передать значение null.
Во многих системах при завершении работы скрипта соединение не завершается. Данное соединение кэшируется и используется повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянное соединение позволяет избежать создание новых подключений, что дает прирост скорости (в определенных случаях значительный прирост) работы приложений.
PDO включает поддержку различных драйверов для работы со множеством баз данных. Такими как:
PDO предлагает единые методы работы с перечисленными базами данных (текст запросов определенной части баз данных может отличаться).
Благодаря методу PDO::prepare появилась возможность борьбы с sql инъекциями. А именно большую роль играют placeholder’ы. Использование placeholder’ов делает невозможным проведение sql инъекций.
Соединение с базой данных MySql:
Для соединения с базой данных необходимо создать объект PDO и передать ему информацию о DNS источнике данных и указать логин и пароль (если они существуют).
Подключение:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass, $array_options);
?>
Экземпляр объекта PDO принимает четыре параметра:
Первый параметр. DNS – имя источника данных, содержащее информацию, необходимую для соединения с базой данных.
Имя источника данных состоит из имени драйвера, двоеточия, адреса хост машины на которой находится база данных, точки с запятой и названием базы данных.
'mysql:host=localhost;dbname=test'
Второй параметр. $user – логин пользователя базы данных.
Третий параметр. $pass – пароль пользователя базы данных (Если есть).
Четвертый (необязательный) параметр. $array_options - Массив настроек подключения (специфичный для драйвера). Указывается как ключ => значение.
Атрибуты настроек подключения для драйвера MySql:
PDO::MYSQL_ATTR_LOCAL_INFILE – если этот атрибут установлен в TRUE, то при чтении строк из текстового файла, выполнение их вставки в таблицу происходит с очень высокой скоростью.
PDO::MYSQL_ATTR_INIT_COMMAND – с помощью данного атрибута можно автоматически выполнить команду при подключении к серверу. Также команда будет автоматически выполнена при переподключении.
Часто с помощью данного атрибута передают кодировку, используемую для работы с базой данных.
Обработка ошибок:
В случае успешного соединения возвращается объект PDO. Если соединение с базой данных не удается, выбрасывает исключение PDOException.
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($pdo->query('SELECT * from FOO') as $row) {
print_r($row);
}
$pdo = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Ошибку можно перехватить с помощью конструкции try catch и использовать ее на свое усмотрение. Прошу заметить, что ответственность за перехват исключений лежит полностью на вас, так как ошибки, выводимые с помощью данной конструкции, могут с играть в пользу злоумышленников.
Закрытие соединения:
Для завершения соединения, необходимо переменной, в которой хранится объект PDO, передать значение null.
$pdo = null;
Во многих системах при завершении работы скрипта соединение не завершается. Данное соединение кэшируется и используется повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянное соединение позволяет избежать создание новых подключений, что дает прирост скорости (в определенных случаях значительный прирост) работы приложений.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.