(PECL PDO_MYSQL >= 0.1.0)
PDO_MYSQL DSN — Соединение с базой данных MySQL
Имя источника данных (Data Source Name или DSN) PDO_MYSQL состоит из следующих элементов:
DSN-префикс - это mysql:
.
Имя хоста, где находится сервер баз данных.
Номер порта, который слушает сервер баз данных.
Имя базы данных.
Сокет MySQL Unix (не должен использоваться совместно с host или port).
Кодировка. См. раздел Кодировки для дополнительной информации.
До PHP 5.3.6 этот элемент игнорировался. Частично этот параметр
можно заменить с помощью PDO::MYSQL_ATTR_INIT_COMMAND
,
как показанно в примере ниже.
Метод в примере ниже может быть использован только с кодировками, которые совпадают в части 7-битного представления ASCII, таких как ISO-8859-1 и UTF-8. Пользователи, использующие кодировки с другим представлением (такие как UTF-16 или Big5) должны использовать опцию charset, добавленную в PHP 5.3.6 и более поздних версиях.
Пример #1 Установка набора символов соединения UTF-8 до PHP 5.3.6
<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$dbh = new PDO($dsn, $username, $password, $options);
?>
Версия | Описание |
---|---|
5.3.6 | До версии 5.3.6 параметр charset игнорировался. |
Пример #2 Примеры DNS для PDO_MYSQL
Следующие примеры показывают использование PDO_MYSQL DSN для соединения с базой данных MySQL:
mysql:host=localhost;dbname=testdb
mysql:host=localhost;port=3307;dbname=testdb mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
Замечание: Только Unix:
Если имя хоста установлено как "localhost", то соединение поисходит через сокет домена. Если PDO_MYSQL скомпилирован с использованием libmysqlclient, то путь к файлу-сокета будет совпадать с путем, по которому скомпилирован libmysqlclient. Если PDO_MYSQL скомпилирован с использованием mysqlnd, значение сокета по умолчанию, может быть выставлено с использованием настройки pdo_mysql.default_socket.