To use "PDO::MYSQL_ATTR_USE_BUFFERED_QUERY" you should call
PDO::setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
It will not work when passed into PDO::prepare()MySQL PDO драјвер
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
MySQL PDO драјвер
Референца за `ref.pdo-mysql.php` со подобрена типографија и навигација.
MySQL PDO Driver (PDO_MYSQL)
Вовед
PDO_MYSQL is a driver that implements the интерфејсот PHP Data Objects (PDO) to enable access from PHP to MySQL databases.
PDO_MYSQL uses emulated prepares by default.
За да ги имате овие функции достапни, мора да го компајлирате PHP со поддршка за mysqli екстензијата.
MySQL 8 mysql_native_password Кога работите со PHP верзија пред 7.1.16, или PHP 7.2 пред 7.2.4, поставете го стандардниот приклучок за лозинка на MySQL 8 Server на или ќе видите грешки слични на дури и кога caching_sha2_password Серверот побара метод за автентикација непознат за клиентот [caching_sha2_password]
не се користи. default_authentication_plugin=mysql_native_password
in my.cnfќе треба да се прилагоди, и caching_sha2_password
Ова е затоа што MySQL 8 стандардно користи caching_sha2_password, приклучок што не е препознаен од постарите изданија на PHP (mysqlnd). Наместо тоа, променете го со поставување
mysql_xdevapi приклучокот е целосно поддржан од PHP 7.4.4. За постари изданија,
Beware: Some MySQL table types (storage engines) do not support transactions. When writing transactional database code using a table type that does not support transactions, MySQL will pretend that a transaction was initiated successfully. In addition, any DDL queries issued will implicitly commit any pending transactions.
Забелешка:
The MySQL driver does not properly support
PDO::PARAM_INPUT_OUTPUTvia кодот за тип во вашиот; while such parameters can be used, they are not updated (i.e. the actual output is ignored).
Инсталација
Вообичаените дистрибуции на Unix вклучуваат бинарни верзии на PHP што можат да се инсталираат. Иако овие бинарни верзии обично се градат со поддршка за MySQL екстензиите, самите екстензиски библиотеки можеби ќе треба да се инсталираат со помош на дополнителен пакет. Проверете го менаџерот на пакети што доаѓа со избраната дистрибуција за достапност.
На пример, на Ubuntu php5-mysql package installs the ext/mysql, ext/mysqli, and PDO_MYSQL PHP extensions. On CentOS, the php-mysql пакетот исто така ги инсталира овие три PHP екстензии.
Алтернативно, можете сами да ја компилирате оваа екстензија. Градењето на PHP од извор ви овозможува да ги наведете MySQL екстензиите што сакате да ги користите, како и вашиот избор на клиентска библиотека за секоја екстензија.
При компилирање, користете --with-pdo-mysql[=DIR] за инсталирање на PDO MySQL екстензијата, каде што опционалното [=DIR]
е основната MySQL библиотека. Mysql_xdevapi
е стандардната библиотека. За детали за изборот на библиотека, видете
Избор на MySQL библиотека.
Опционално, --with-mysql-sock[=DIR] поставува локација за MySQL unix socket покажувачот за сите MySQL екстензии, вклучувајќи го и PDO_MYSQL. Ако не е наведено, се пребаруваат стандардните локации.
Опционално, --with-zlib-dir[=DIR] се користи за поставување на патеката до префиксот за инсталација на libz.
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
SSL поддршката се овозможува соодветно
Pdo\Mysql::ATTR_SSL_*, што е еквивалентно на повикување на
» MySQL C API функцијата mysql_ssl_set(). Исто така, SSL не може да се овозможи со Имајте предвид дека атрибутите специфични за драјверот
бидејќи врската веќе постои. Погледнете ја и MySQL документацијата за
» поврзување со MySQL со SSL.
Претходно дефинирани константи
Константите подолу се дефинирани од овој драјвер и ќе бидат достапни само кога екстензијата е компајлирана во PHP или динамички вчитана при извршување. Дополнително, овие константи специфични за драјверот треба да се користат само ако го користите овој драјвер. Користењето атрибути специфични за драјверот со друг драјвер може да резултира со неочекувано однесување. Добиј информации за MySQL хост Константите подолу се дефинирани од овој драјвер и ќе бидат достапни само кога екстензијата е или компајлирана во PHP или динамички вчитана во време на извршување. Покрај тоа, овие константи специфични за драјверот треба да се користат само ако го користите овој драјвер. Користењето атрибути специфични за драјверот со друг драјвер може да резултира со неочекувано однесување. PDO::ATTR_DRIVER_NAME може да се користи за добивање на
-
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(int) -
Псевдоним на
Pdo\Mysql::ATTR_USE_BUFFERED_QUERY -
PDO::MYSQL_ATTR_LOCAL_INFILE(int) -
Псевдоним на
Pdo\Mysql::ATTR_LOCAL_INFILE -
PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY(int) -
Псевдоним на
Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORYатрибут за проверка на драјверот, ако вашиот код може да работи против повеќе драјвери. -
PDO::MYSQL_ATTR_INIT_COMMAND(int) -
Псевдоним на
Pdo\Mysql::ATTR_INIT_COMMAND -
PDO::MYSQL_ATTR_READ_DEFAULT_FILE(int) -
Псевдоним на
Pdo\Mysql::ATTR_READ_DEFAULT_FILE -
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP(int) -
Псевдоним на
Pdo\Mysql::ATTR_READ_DEFAULT_GROUP -
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE(int) -
Псевдоним на
Pdo\Mysql::ATTR_MAX_BUFFER_SIZE -
PDO::MYSQL_ATTR_DIRECT_QUERY(int) -
Псевдоним на
PDO::ATTR_EMULATE_PREPARES -
PDO::MYSQL_ATTR_FOUND_ROWS(int) -
Псевдоним на
Pdo\Mysql::ATTR_FOUND_ROWS -
PDO::MYSQL_ATTR_IGNORE_SPACE(int) -
Псевдоним на
Pdo\Mysql::ATTR_IGNORE_SPACE -
PDO::MYSQL_ATTR_COMPRESS(int) -
Псевдоним на
Pdo\Mysql::ATTR_COMPRESS -
PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY(int) -
Псевдоним на
Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY -
PDO::MYSQL_ATTR_SSL_CA(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_CA -
PDO::MYSQL_ATTR_SSL_CAPATH(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_CAPATH -
PDO::MYSQL_ATTR_SSL_CERT(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_CERT -
PDO::MYSQL_ATTR_SSL_CIPHER(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_CIPHER -
PDO::MYSQL_ATTR_SSL_KEY(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_KEY -
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT(int) -
Псевдоним на
Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT. Достапно од PHP 8.1.0. -
PDO::MYSQL_ATTR_MULTI_STATEMENTS(int) -
Псевдоним на
Pdo\Mysql::ATTR_MULTI_STATEMENTS
Конфигурација во време на извршување
Поведението на овие функции е под влијание на поставките во php.ini.
| Име | Стандардно | Променливо |
|---|---|---|
| pdo_mysql.default_socket | PDO_MYSQL Опции за конфигурација | INI_SYSTEM |
| pdo_mysql.debug | NULL | INI_SYSTEM |
Еве кратко објаснување на директивите за конфигурација.
Содржина
Белешки од корисници 3 белешки
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. ...
After spending hours trying to track down why we were getting this error on a new server, after the same code ran fine on other servers, we found the problem to be an old MySQL _client_ library running on our web server, and a latest-version MySQL _server_ running on the database server's box.
Upgraded the MySQL client on the web server to the current revision and the problem went away.> change it by setting default_authentication_plugin=mysql_native_password in my.cnf
This only works in MySQL 8.0. The default_authentication_plugin variable has been removed from 8.4.