PDO::__construct - Создает экземпляр PDO, предоставляющий соединение с базой данных
Вернуться к: PDO
PDO::__construct
(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, содержащее информацию, необходимую для подключения к базе данных.
В общем, DSN состоит из имени драйвера PDO, за которым следует двоеточие и специфический синтаксис подключения драйвера PDO. Дополнительную информацию можно получить из раздела Документация по специфическим драйверам PDO.
Параметр
dsn
поддерживает три разные метода указания аргументов, необходимых для создания соединения с базой данных:- Вызов драйвера
-
dsn
содержит полный DSN. - Вызов URI
-
Параметр
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
-
Массив специфичных для драйвера настроек подключения ключ=>значение.
Возвращаемые значения
Возвращает объект 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
в нижнем регистре.
Вернуться к: PDO