(PECL PDO_MYSQL >= 0.1.0)
PDO_MYSQL DSN — Соединение с базой данных MySQL
Имя источника данных PDO_MYSQL (Data Source Name или DSN) состоит из следующих элементов:
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.