PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct Создаёт объект PDO, который предоставляет соединение с базой данных

Описание

public PDO::__construct(
    string $dsn,
    ?string $username = null,
    #[\SensitiveParameter] ?string $password = null,
    ?array $options = null
)

Метод создаёт экземпляр класса PDO, который предоставляет подключение к необходимой базе данных.

Список параметров

dsn

Имя источника данных (англ. Data Source Name, DSN) с информацией, которая требуется для подключения к базе данных.

Часто DSN-строка подключения состоит из названия PDO-драйвера, за которым следует двоеточие и синтаксис соединения, характерный для PDO-драйвера. Дополнительную информацию даёт раздел «Документация к PDO-драйверам, характерным для баз данных».

Параметр dsn поддерживает три метода указания аргументов, которые требуются для установки соединения с базой данных:

Вызов драйвера

Аргумент dsn с полной DSN-строкой подключения.

Вызов URI-идентификатора

Аргумент dsn, который состоит из префикса uri:, за которым идёт URI-идентификатор, который определяет расположение файла с DSN-строкой. Идентификатор URI указывает на локальный файл или удалённый URL-адрес.

uri:file:///path/to/dsnfile

Совмещение имён

Аргумент dsn состоит из имени name, которое соответствует параметру pdo.dsn.name в файле php.ini, который определяет DSN-строку подключения.

Замечание:

Псевдоним требуется определять в файле 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);

?>