Spec-Zone .ru
спецификации, руководства, описания, API

21.9.4. MySQL Functions (PDO_MYSQL) (MySQL (PDO))

21.9.4.1. PDO_MYSQL DSN

Copyright 1997-2012 PHP Documentation Group.

PDO_MYSQL является драйвером, который реализует Объекты данных PHP (PDO) интерфейс, чтобы включить доступу от PHP до баз данных MySQL 3.x, 4.x и 5.x.

PDO_MYSQL использует в своих интересах собственную готовую поддержку оператора, существующую в MySQL 4.1 и выше. Если Вы будете использовать более старую версию mysql клиентских библиотек, то PDO будет эмулировать их для Вас.

Предупреждение

Остерегайтесь: табличные типы MySQL Some (механизмы хранения) не поддерживают транзакции. При записи транзакционного кода базы данных, используя табличный тип, который не поддерживает транзакции, MySQL притворится, что транзакция инициировалась успешно. Кроме того, любые выпущенные запросы DDL будут неявно фиксировать любые транзакции на ожидании.

Использовать --with-pdo-mysql[=DIR] устанавливать расширение MySQL PDO, где дополнительное [=DIR] каталог установки основы MySQL. Если mysqlnd передают как [=DIR], тогда MySQL собственный драйвер будет использоваться.

Дополнительно, --with-mysql-sock[=DIR] наборы к расположению к unix MySQL снабжают указатель сокетом для всех расширений MySQL, включая PDO_MYSQL. Если неуказанный, расположения значения по умолчанию ищутся.

Дополнительно, --with-zlib-dir[=DIR] используется, чтобы установить путь к префиксу установки libz.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock  

Поддержка SSL включается, используя соответствующие константы PDO_MySQL, который эквивалентен вызову API-функции MySQL C mysql_ssl_set (). Кроме того, с SSL нельзя включить PDO::setAttribute потому что соединение уже существует. См. также документацию MySQL о соединении с MySQL с SSL.

Таблица 21.60. Журнал изменений

Версия Описание
5.4.0 Клиентские библиотеки MySQL 4.1 и ниже больше не поддерживаются.
5.3.9 Добавленная поддержка SSL с mysqlnd и OpenSSL.
5.3.7 Добавленная поддержка SSL с libmysqlclient и OpenSSL.

Константы ниже определяются bythis драйвер, и только будут доступны, когда расширение было eithercompiled в PHP или динамически загрузилось во времени выполнения. Кроме того, thesedriver-специфичные константы должны только использоваться, если Вы используете этот драйвер. Используя специфичные для драйвера атрибуты с другим драйвером может закончиться inunexpected поведение. PDO::getAttribute может использоваться toobtain PDO_ATTR_DRIVER_NAME припишите проверке thedriver, если Ваш код может работать против многократных драйверов.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (целое число)

Если этот атрибут устанавливается в TRUE на a PDOStatement, драйвер MySQL будет использовать буферизованные версии API MySQL. Если Вы пишете переносимый код, следует использовать PDOStatement::fetchAll вместо этого.

Пример 21.212. Принуждение запросов быть буферизованным в mysql

<?phpif ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {    $stmt = $db->prepare('select * from foo',        array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));} else {    die("my application only works with mysql; I should use \$stmt->fetchAll() instead");}?>
PDO::MYSQL_ATTR_LOCAL_INFILE (целое число)

Включить LOAD LOCAL INFILE.

Отметьте, эта константа может только использоваться в driver_options выстройте, создавая новый дескриптор базы данных.

PDO::MYSQL_ATTR_INIT_COMMAND (целое число)

Команда, чтобы выполниться, соединяясь с сервером MySQL. Будет автоматически повторно выполняться, повторно соединяясь.

Отметьте, эта константа может только использоваться в driver_options выстройте, создавая новый дескриптор базы данных.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (целое число)

Считайте опции из именованного файла опции вместо от my.cnf. Эта опция не доступна, если mysqlnd используется, потому что mysqlnd не читает mysql конфигурационные файлы.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (целое число)

Считайте опции из именованной группы от my.cnf или файл, определенный с MYSQL_READ_DEFAULT_FILE . Эта опция не доступна, если mysqlnd используется, потому что mysqlnd не читает mysql конфигурационные файлы.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (целое число)

Максимальный размер буфера. Значения по умолчанию к 1 мебибайт. Эта константа не поддерживается когда компилирующийся против mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (целое число)

Выполните прямые запросы, не используйте подготовленные операторы.

PDO::MYSQL_ATTR_FOUND_ROWS (целое число)

Возвратите число найденных (соответствующих) строк, не число измененных строк.

PDO::MYSQL_ATTR_IGNORE_SPACE (целое число)

Пробелы разрешения после имен функций. Делает все зарезервированные слова имен функций.

PDO::MYSQL_ATTR_COMPRESS (целое число)

Включите сжатию сетевых коммуникаций. Это не поддерживается когда компилирующийся против mysqlnd.

PDO::MYSQL_ATTR_SSL_CA (целое число)

Путь к файлу к центру сертификации SSL.

Это существует с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CAPATH (целое число)

Путь к файлу к каталогу, который содержит доверяемые сертификаты CA SSL, которые сохранены в формате PEM.

Это существует с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CERT (целое число)

Путь к файлу к сертификату SSL.

Это существует с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CIPHER (целое число)

Список одного или более допустимых шифров, чтобы использовать для шифрования SSL, в формате, понятом под OpenSSL. Например: DHE-RSA-AES256-SHA:AES128-SHA

Это существует с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_KEY (целое число)

Путь к файлу к ключу SSL.

Это существует с PHP 5.3.7.

На поведение этих функций влияют настройки в php.ini.

Таблица 21.61. Параметры конфигурации PDO_MYSQL

Имя Значение по умолчанию Изменчивый
pdo_mysql.default_socket "/tmp/mysql.sock" PHP_INI_SYSTEM
pdo_mysql.debug НУЛЬ PHP_INI_SYSTEM

Вот короткое объяснение конфигурационных директив.

pdo_mysql.default_socket строка

Устанавливает сокет домена Unix. Это значение может или быть установлено во время компиляции, если сокет домена находится в, конфигурируют. Этой установкой ini является Unix только.

pdo_mysql.debug булев

Позволяет отладить для PDO_MYSQL. Эта установка только доступна, когда PDO_MYSQL компилируется против mysqlnd и в режиме отладки PDO.