PDO - расширение предоставляющее интерфейс для доступа к различным базам данных

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
PDO (PHP Data Objects) – является PHP расширением, предоставляющее разработчику интерфейс для доступа к различным базам данных.

PDO - расширение предоставляющее интерфейс для доступа к различным базам данных


PDO включает поддержку различных драйверов для работы со множеством баз данных. Такими как:

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;


Во многих системах при завершении работы скрипта соединение не завершается. Данное соединение кэшируется и используется повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянное соединение позволяет избежать создание новых подключений, что дает прирост скорости (в определенных случаях значительный прирост) работы приложений.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.