(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных
$dsn
[, string $username
[, string $password
[, array $options
]]] )Создает экземпляр PDO, предоставляющий подключение к необходимой базе данных.
Имя источника данных или 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
Имя пользователя для строки DSN. Этот параметр опционален для некоторых драйверов PDO.
Пароль для строки DSN. Этот параметр опционален для некоторых драйверов PDO.
Массив специфичных для драйвера настроек подключения ключ=>значение.
Возвращает объект PDO в случае успеха.
PDO::__construct() выбрасывает исключение PDOException, если попытка соединения с необходимой базой данных не удается.
Пример #1 Создание экземпляра PDO через вызов драйвера
<?php
/* Подключение к базе данных MySQL, используя вызов драйвера */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
?>
Пример #2 Создание экземпляра PDO через вызов URI
В следующем примере предполагается, что файл /usr/local/dbconnect существует с правами доступа, которые позволяют PHP прочитать файл. Файл содержит PDO DSN для подключения к базе данных DB2 через драйвер PDO_ODBC:
odbc:DSN=SAMPLE;UID=john;PWD=mypass
PHP-скрипт может создать подключение к базе данных путем простой передачи параметра uri:, указывающим на на файл URI:
<?php
/* Подключение к базе данных ODBC, используя вызов драйвера */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
?>
Пример #3 Создание экземпляра PDO, используя псевдоним
В следующем примере предполагается, что php.ini содержит следующую запись, позволяющую подключение к базе данных MySQL, используя только псевдонимmydb:
[PDO] pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Подключение к базе данных ODBC, используя псевдоним */
$dsn = 'mydb';
$user = '';
$password = '';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
?>
Замечание:
До PHP 5.3, класс, наследуемый от PDO и реализующий магический метод __call, всегда получал параметр
$method
в нижнем регистре.