(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::__construct — Создаёт объект PDO, который предоставляет соединение с базой данных
$dsn
,$username
= null
,$password
= null
,$options
= null
Метод создаёт экземпляр класса PDO, который предоставляет подключение к необходимой базе данных.
dsn
Имя источника данных (англ. Data Source Name, DSN) с информацией, которая требуется для подключения к базе данных.
Часто DSN-строка подключения состоит из названия PDO-драйвера, за которым следует двоеточие и синтаксис соединения, характерный для PDO-драйвера. Дополнительную информацию даёт раздел «Документация к PDO-драйверам, характерным для баз данных».
Параметр dsn
поддерживает три метода
указания аргументов, которые требуются для установки соединения
с базой данных:
Аргумент dsn
с полной DSN-строкой подключения.
Аргумент dsn
, который состоит из префикса uri:
,
за которым идёт URI-идентификатор, который определяет расположение файла
с DSN-строкой. Идентификатор URI указывает на локальный файл или удалённый URL-адрес.
uri:file:///path/to/dsnfile
Аргумент dsn
состоит из имени
name
, которое соответствует параметру
pdo.dsn.
в файле php.ini,
который определяет DSN-строку подключения.
name
Замечание:
Псевдоним требуется определять в файле php.ini, но не в файлах .htaccess или httpd.conf
username
Имя пользователя для DSN-строки. Этот параметр необязателен для ряда PDO-драйверов.
password
Пароль для строки DSN. Этот параметр необязателен для ряда PDO-драйверов.
options
Массив параметров подключения, характерных для драйвера, в виде пар ключ=>значение.
Метод выбрасывает исключение PDOException, если попытка
подключения к базе данных не удалась, независимо от текущей стратегии обработки
ошибок, установленной в атрибуте PDO::ATTR_ERRMODE
.
Пример #1 Пример создания экземпляра класса PDO через вызов драйвера
<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
?>
Пример #2 Пример создания экземпляра класса PDO через вызов URI-идентификатора
В следующем примере предполагается, что файл /usr/local/dbconnect существует с правами доступа, которые разрешают PHP прочитать файл. Файл содержит PDO DSN для подключения к базе данных DB2 через драйвер PDO_ODBC:
odbc:DSN=SAMPLE;UID=john;PWD=mypass
PHP-скрипт создаёт подключение к базе данных путём простой
передачи параметра uri:
, который указывает
на файл идентификатора URI:
<?php
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>
Пример #3 Пример создания экземпляра класса PDO через псевдоним
В следующем примере предполагается, что файл php.ini содержит следующую
запись, которая разрешает подключиться к базе данных MySQL только
через псевдоним mydb
:
[PDO] pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
$dsn = 'mydb';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>