PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSNСоединение с базой данных MySQL

Описание

Имя источника данных (Data Source Name или DSN) PDO_MYSQL состоит из следующих элементов:

DSN префикc

DSN-префикс - это mysql:.

host

Имя хоста, где находится сервер баз данных.

port

Номер порта, который слушает сервер баз данных.

dbname

Имя базы данных.

unix_socket

Сокет MySQL Unix (не должен использоваться совместно с host или port).

charset

Кодировка. См. раздел Кодировки для дополнительной информации.

До 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.