![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
PDO_MYSQL это драйвер, который осуществляет
PHP Data Objects (PDO) interface, чтобы позволить доступ из PHP
к базам данных MySQL. Как в PHP 5.2.1, PDO_MYSQL использует эмуляцию подготовки по умолчанию.
Раньше PDO_MYSQL по умолчанию применял поддержку запросов, существующую в
MySQL 4.1 и выше, и эмуляровал ее для более старых версий библиотек клиента.
MySQL 8 Управляя версией PHP до 7.1.16 или PHP 7.2 до 7.2.4, установите
плагин пароля сервера MySQL 8 в
mysql_native_password
или иначе вы будете видеть ошибки, подобные
The server requested authentication
method unknown to the client [caching_sha2_password] даже когда
caching_sha2_password не применяется.
Это вызвано тем, что умолчание для MySQL 8 именно
caching_sha2_password, плагин, который не признан более старым выпуском PHP
(mysqlnd). Вместо этого измените его, установив
Остерегайтесь: Некоторые типы таблиц MySQL (механизмы хранения)
не поддерживают транзакции. Сочиняя транзакционный код базы данных, используя
тип таблицы, который не поддерживает транзакции, MySQL притворится, что
транзакция была начата успешно. Кроме того, любые выпущенные запросы DDL
неявно передадут любые отложенные транзакции. Дистрибутивы Unix обычно включают версии двоичных файлов PHP, которые
могут быть установлены. Хотя эти версии двоичных файлов, как правило,
строятся с поддержкой расширений MySQL, сами дополнительные библиотеки,
возможно, должны быть установлены, используя дополнительный пакет.
Проверьте диспетчер пакетов для их доступности. Например, на Ubuntu пакет Альтернативно, можно собрать это расширение самому. Сборка PHP позволяет
вам определять расширения MySQL, которые вы хотите использовать, а также ваш
выбор библиотеки клиента для каждого расширения. При сборке используйте Произвольно устаовите Произвольно Поддержка SSL позволена, используя соответствующие
константы PDO_MySQL,
которые эквивалентны запросу
mysql_ssl_set(). Кроме того, с SSL нельзя позволить
Таблица 4.1. Changelog Константы ниже определяются этим драйвером и будут доступны только, когда
расширение было собрано в PHP или динамично загружено во время выполнения.
Кроме того, эти определенные для драйвера константы должны использоваться
только, если вы используете этот драйвер. Использование определенных для
драйвера признаков с другим драйвером может привести к неожиданному
поведению.
Если этот признак установлен в Пример 4.1.
Запросы, которые будут буферизованы в mysql Включает Отметьте, эта константа может использоваться только в массиве
Команда, чтобы выполнить, соединяясь с сервером MySQL.
Будет автоматически повторно выполнена, снова соединяясь. Отметьте, эта константа может использоваться только в массиве
Прочитайте опции из названного файла выбора вместо
Прочитайте опции из названной группы
Максимальный размер буфера. По умолчанию 1 MB.
Эта константа не поддерживается, когда собрано с mysqlnd. Выполните прямые запросы, не используйте подготовленные. Возвратите количество найденных строк, а не количество измененных.
Разрешить пробелы после имен функций. Делает все имена
функций зарезервированными словами. Позволить сетевое коммуникационное сжатие. Это также поддерживается,
когда собрано с mysqlnd с PHP 5.3.11. Путь к файлу сертификата SSL. Это существует с PHP 5.3.7. Путь к каталогу, который содержит сертификаты доверенных SSL CA,
которые сохранены в формате PEM. Это существует с PHP 5.3.7. Путь к файлу сертификата SSL. Это существует с PHP 5.3.7. Список из одного или более допустимых шифров, чтобы использовать для
шифрования SSL, в формате, понятном OpenSSL. Например:
Это существует с PHP 5.3.7. Путь к файлу ключа SSL. Это существует с PHP 5.3.7. Обеспечивает способ отключить проверку сертификата SSL сервера. Это существует с PHP 7.0.18 и PHP 7.1.4. Отключает выполнение мультизапросов в обоих
Отметьте, эта константа может использоваться только в массиве
Это существует с PHP 5.5.21 и PHP 5.6.5. Поведение этих функций затронуто параметрами настройки в
Таблица 4.2. Опции настройки PDO_MYSQL Для получения дальнейшей информации и определения режимов PHP_INI_*,
см. http://www.php.net/manual/en/configuration.changes.modes.
Вот короткое объяснение конфигурационных директив. Устанавливает сокет Unix. Это значение может
быть установлено во время компиляции, если сокет найден.
Это ini-установка только в Unix. Позволяет отладить PDO_MYSQL. Это доступно только, когда PDO_MYSQL
собран с mysqlnd в режиме отладки PDO. Соединение с базами данных MySQL. Описание PDO_MYSQL Data Source Name (DSN) состоит из следующих элементов: Это Имя хоста, на котором работает сервер базы данных. Номер порта, где сервер базы данных слушает. Название базы данных. Сокет MySQL Unix (не должен использоваться с
Набор символов. См. документацию
character set
для получения дополнительной информации. До PHP 5.3.6 этот элемент был тихо проигнорирован. То же самое поведение
может частично копироваться с опцией драйвера
Метод в примере ниже может использоваться только с наборами символов,
которые разделяют то же самое низкое 7-битное представление как ASCII, такими
как ISO-8859-1 и UTF-8. Пользователи, использующие наборы символов, у которых
есть различные представления (такие как UTF-16 или Big5)
должны использовать параметр
Пример 4.2. Установить набор символов связи в UTF-8 до PHP 5.3.6 Журнал изменений Примеры Пример 4.3. PDO_MYSQL DSN Следующий пример показывает PDO_MYSQL DSN
для соединения с базами данных MySQL: Более полные примеры: Примечания Когда имя хоста установлено в
Глава 4. Функции MySQL (PDO_MYSQL)
default_authentication_plugin=mysql_native_password
в my.cnf
.
Плагин caching_sha2_password
будет поддержан в будущем выпуске PHP. Тем временем расширение
mysql_xdevapi действительно поддерживает его.php5-mysql
устанавливает расширения PHP ext/mysql, ext/mysqli и PDO_MYSQL. В
CentOS пакет php-mysql
также устанавливает эти
три расширения PHP.--with-pdo-mysql[=DIR]
,
чтобы устанавливать расширение PDO MySQL, где дополнительное значение
[=DIR]
это библиотека MySQL. С PHP 5.4
mysqlnd это библиотека по умолчанию. Для получения
дополнительной информации о выборе библиотеки посмотрите
здесь.--with-mysql-sock[=DIR]
к местоположению сокета MySQL для всех расширений MySQL, включая PDO_MYSQL.
Если не указано, местоположения по умолчанию проверены.--with-zlib-dir[=DIR]
используется, чтобы установить путь к libz.
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
PDO::setAttribute
, потому что связь уже
существует. См. также документацию MySQL о
MySQL with SSL.
Версия
Описание 5.4.0
mysqlnd стал библиотекой MySQL по умолчанию,
собирая PDO_MYSQL. Ранее такой библиотекой была libmysqlclient. 5.4.0
Библиотеки клиента MySQL 4.1 и ниже больше не поддерживаются. 5.3.9
SSL поддерживается с mysqlnd и OpenSSL. 5.3.7
SSL поддерживается с libmysqlclient и OpenSSL. PDO::getAttribute
может использоваться,
чтобы получить атрибут PDO::ATTR_DRIVER_NAME
,
чтобы проверить драйвер, если ваш код работает с разными драйверами.PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
(integer)TRUE
в
PDOStatement
, драйвер MySQL будет использовать
буферизированные версии MySQL API. Если вы пишете портабельный код,
необходимо использовать вместо этого функцию
PDOStatement::fetchAll
.
<?php
if ($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
(integer)LOAD LOCAL INFILE
.driver_options
, строя новый
обработчик базы данных.PDO::MYSQL_ATTR_INIT_COMMAND
(integer)driver_options
, строя новый
обработчик базы данных.PDO::MYSQL_ATTR_READ_DEFAULT_FILE
(integer)my.cnf
. Этот выбор недоступен, если
используется mysqlnd, потому что mysqlnd
не читает конфигурационные файлы.PDO::MYSQL_ATTR_READ_DEFAULT_GROUP
(integer)my.cnf
или файла, определенного с
MYSQL_READ_DEFAULT_FILE
.
Этот выбор недоступен, если используется mysqlnd, потому что mysqlnd
не читает конфигурационные файлы.PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
(integer)PDO::MYSQL_ATTR_DIRECT_QUERY
(integer)PDO::MYSQL_ATTR_FOUND_ROWS
(integer)PDO::MYSQL_ATTR_IGNORE_SPACE
(integer)PDO::MYSQL_ATTR_COMPRESS
(integer)PDO::MYSQL_ATTR_SSL_CA
(integer)PDO::MYSQL_ATTR_SSL_CAPATH
(integer)PDO::MYSQL_ATTR_SSL_CERT
(integer)PDO::MYSQL_ATTR_SSL_CIPHER
(integer)DHE-RSA-AES256-SHA:AES128-SHA
.PDO::MYSQL_ATTR_SSL_KEY
(integer)
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
(integer)PDO::MYSQL_ATTR_MULTI_STATEMENTS
(integer)PDO::prepare
и
PDO::query
, когда установлено в
FALSE
.driver_options
, строя новый
обработчик базы данных.php.ini
.
Имя Умолчание
Изменяемый
pdo_mysql.default_socket "/tmp/mysql.sock"
PHP_INI_SYSTEM
pdo_mysql.debug NULL PHP_INI_SYSTEM
pdo_mysql.default_socket
string
pdo_mysql.debug
boolean
4.1.
PDO_MYSQL DSN
PDO_MYSQL DSN
mysql:
.host
port
dbname
unix_socket
host
или port
).
charset
PDO::MYSQL_ATTR_INIT_COMMAND
, см. ниже.charset
в 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
игнорируется.
mysql:host=localhost;dbname=testdb
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
"localhost"
,
тогда связь с сервером установлена через сокет. Если PDO_MYSQL собран с
libmysqlclient, местоположение файла сокета вкомпилировано в libmysqlclient.
Если PDO_MYSQL собран с mysqlnd, сокет по умолчанию может быть установлен
посредством
pdo_mysql.default_socket.
Найди своих коллег! |
Вы можете
направить письмо администратору этой странички, Алексею Паутову.