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


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

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

Описание

public PDO::__construct ( string $dsn [, string $username [, string $password [, array $options ]]] )

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

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

dsn

Имя источника данных или 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

Массив специфичных для драйвера настроек подключения ключ=>значение.

Возвращаемые значения

Возвращает объект PDO в случае успеха.

Ошибки

PDO::__construct() выбрасывает исключение PDOException, если попытка соединения с необходимой базой данных не удается.

Примеры

Пример #1 Создание экземпляра PDO через вызов драйвера

<?php
/* Подключение к базе данных ODBC, используя вызов драйвера */
$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 в нижнем регистре.