PHP.mk документација

MySQL PDO драјвер

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

ref.pdo-mysql.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека ref.pdo-mysql.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
MySQL PDO драјвер

Референца за `ref.pdo-mysql.php` со подобрена типографија и навигација.

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. За постари изданија,

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

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_OUTPUT via кодот за тип во вашиот; 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.

Достапно од PHP 7.0.18 и PHP 7.1.4.
Име Стандардно Променливо
pdo_mysql.default_socket PDO_MYSQL Опции за конфигурација INI_SYSTEM
pdo_mysql.debug NULL INI_SYSTEM
За подетални информации и дефиниции на INI_* режимите, видете го Каде може да се постави поставка за конфигурација.

Еве кратко објаснување на директивите за конфигурација.

pdo_mysql.default_socket string

"/tmp/mysql.sock"

pdo_mysql.debug bool

Поставува Unix доменски сокет. Оваа вредност може да се постави во време на компајлирање ако доменскиот сокет е пронајден при конфигурирање. Оваа ini поставка е само за Unix.

Содржина

Белешки од корисници 3 белешки

— Поврзување со MySQL бази на податоци
пред 18 години
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()
brian на diamondsea точка com
пред 17 години
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.
davey at php dot net
пред 1 година
> 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.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.