Ang PDO_MYSQL ay isang driver na nagpapatupad ng interface ng PHP Data Objects (PDO) upang paganahin ang pag-access mula sa PHP patungo sa mga database ng MySQL. Kapag nagpapatakbo ng bersyon ng PHP bago ang 7.1.16, o ang PHP 7.2 bago ang 7.2.4, itakda ang plugin ng default na password ng MySQL 8 Server sa mysql_native_password o kung hindi ay makakakita ka ng mga error na katulad ng Ang server ay humiling ng paraan ng pagpapatunay na hindi alam ng kliyente [caching_sha2_password] kahit na kapag caching_sha2_password ay hindi ginagamit. Ito ay dahil ang MySQL 8 ay nagde-default sa caching_sha2_password, isang plugin na hindi kinikilala ng mas lumang mga release ng PHP (mysqlnd). Sa halip, baguhin ito sa pamamagitan ng pagtatakda sa . Ang caching_sha2_password plugin ay susuportahan sa hinaharap na paglabas ng PHP. Pansamantala, sinusuportahan ito ng mysql_xdevapi extension. Babala Mag-ingat: Ang ilang uri ng talahanayan ng MySQL (mga storage engine) ay hindi sumusuporta sa mga transaksyon. Kapag nagsusulat ng transactional database code gamit ang uri ng talahanayan na hindi sumusuporta sa mga transaksyon, magpapanggap ang MySQL na matagumpay na nasimulan ang isang transaksyon. Bilang karagdagan, ang anumang mga query sa DDL na ibinigay ay implicitlya sa anumang nakabinbing mga transaksyon. Ang MySQL driver ay hindi maayos na sumusuporta sa pamamagitan ng PDOStatement::bindParam habang ang mga naturang parameter ay maaaring gamitin, ang mga ito ay hindi na-update (ibig sabihin, ang aktwal na output ay binabalewala) Kasama sa mga karaniwang pamamahagi ng Unix ang mga binary na bersyon ng PHP na maaaring i-install. Bagama't ang mga binary na bersyong ito ay karaniwang binuo na may suporta para sa mga extension ng MySQL, ang mga extension library mismo ay maaaring kailangang i-install gamit ang karagdagang package. Tingnan ang manager ng package na kasama ng iyong napiling pamamahagi para sa availability. Halimbawa, sa Ubuntu ini-install ng package ang ext/mysql, ext/mysqli, at PDO_MYSQL PHP extension. Sa CentOS, ini-install din ng package ang tatlong PHP extension na ito. Bilang kahalili, maaari mong i-compile ang extension na ito sa iyong sarili. Ang pagbuo ng PHP mula sa pinagmulan ay nagbibigay-daan sa iyo na tukuyin ang mga extension ng MySQL na gusto mong gamitin, pati na rin ang iyong piniling library ng kliyente para sa bawat extension. Kapag nag-compile, gumamit ng --with-pdo-mysql[=DIR] para i-install ang PDO MySQL extension, kung saan ang opsyonal ay ang MySQL base library. Ang Mysqlnd ay ang default na library. Para sa mga detalye tungkol sa pagpili ng library, tingnan ang Pagpili ng MySQL library. Opsyonal, ang --with-mysql-sock[=DIR] ay nagtatakda sa lokasyon sa MySQL unix socket pointer para sa lahat ng MySQL extension, kabilang ang PDO_MYSQL. Kung hindi tinukoy, hahanapin ang mga default na lokasyon. Opsyonal, ang --with-zlib-dir[=DIR] ay ginagamit upang itakda ang path sa prefix ng pag-install ng libz. Ang suporta sa SSL ay pinagana gamit ang naaangkop na PDO_MySQL constants, na katumbas ng pagtawag sa ÃÂû MySQL C API function mysql_ssl_set Gayundin, hindi maaaring paganahin ang SSL sa PDO::setAttribute dahil umiiral na ang koneksyon. Tingnan din ang dokumentasyon ng MySQL tungkol sa ÃÂû pagkonekta sa MySQL gamit ang SSL Ang mga constant sa ibaba ay tinukoy ng driver na ito, at magiging available lang kapag ang extension ay na-compile sa PHP o dynamic na na-load sa runtime. Bilang karagdagan, ang mga constant na partikular sa driver na ito ay dapat lamang gamitin kung ginagamit mo ang driver na ito. Ang paggamit ng mga katangiang partikular sa driver sa isa pang driver ay maaaring magresulta sa hindi inaasahang pag-uugali. Maaaring gamitin ang PDO::getAttribute() upang makuha ang katangian upang suriin ang driver, kung ang iyong code ay maaaring tumakbo laban sa maraming driver. sa isang , gagamitin ng MySQL driver ang mga buffered na bersyon ng MySQL API. Kung nagsusulat ka ng portable code, dapat mong gamitin sa halip. Kung ang attribute na ito ay nakatakda toon a, gagamitin ng MySQL driver ang mga buffered na bersyon ng MySQL API. Kung nagsusulat ka ng portable code, dapat mong gamitin sa halip. Halimbawa #1 Pagpipilit sa mga query na i-buffer sa mysql "ang aking application ay gumagana lamang sa mysql; dapat kong gamitin ang \$stmt->fetchAll() sa halip"Tandaan, ang pare-parehong ito ay magagamit lamang sa array kapag gumagawa ng bagong database handle. Pinapayagan ang paghihigpit sa LOCAL DATA loading sa mga file na matatagpuan sa itinalagang direktoryo na ito. Available sa PHP 8.1.0. Tandaan, ang pare-parehong ito ay magagamit lamang sa array kapag gumagawa ng bagong database handle. Utos na isagawa kapag kumokonekta sa MySQL server. Awtomatikong muling isasagawa kapag muling kumonekta. Tandaan, ang pare-parehong ito ay magagamit lamang sa array kapag gumagawa ng bagong database handle. Basahin ang mga opsyon mula sa pinangalanang file ng opsyon sa halip na mula sa . Ang pagpipiliang ito ay hindi magagamit kung mysqlnd ang ginagamit, dahil hindi binabasa ng mysqlnd ang mga file ng pagsasaayos ng mysql. Basahin ang mga opsyon mula sa pinangalanang pangkat mula sa o ang file na tinukoy sa . Ang pagpipiliang ito ay hindi magagamit kung mysqlnd ang ginagamit, dahil hindi binabasa ng mysqlnd ang mga file ng pagsasaayos ng mysql. Pinakamataas na laki ng buffer. Mga Default sa 1 MiB. Ang pare-parehong ito ay hindi suportado kapag pinagsama-sama laban sa mysqlnd. Ibalik ang bilang ng mga nakitang (katugmang) row, hindi ang bilang ng mga binagong row. Ang landas ng file patungo sa awtoridad ng SSL certificate. Ang path ng file sa direktoryo na naglalaman ng mga pinagkakatiwalaang SSL CA certificate, na naka-store sa PEM format. Ang landas ng file patungo sa SSL certificate. Isang listahan ng isa o higit pang pinahihintulutang cipher na gagamitin para sa SSL encryption, sa isang format na naiintindihan ng OpenSSL. Halimbawa: Ang path ng file patungo sa SSL key. Nagbibigay ng paraan upang huwag paganahin ang pag-verify ng SSL certificate ng server. Ito ay umiiral mula sa PHP 7.0.18 at PHP 7.1.4. Hindi pinapagana ang multi query execution sa parehong PDO::prepare() at PDO::query() kapag nakatakda sa . Tandaan, ang pare-parehong ito ay magagamit lamang sa array kapag gumagawa ng bagong database handle Ang pag-uugali ng mga function na ito ay apektado ng mga setting sa . Para sa mga karagdagang detalye at kahulugan ng PHP_INI_* mode, tingnan ang Para sa karagdagang detalye at depinisyon ng PHP_INI_* mode, tingnan ang Kung saan ang setting ng configuration ay maaaring itakda Nagtatakda ng Unix domain socket. Ang halagang ito ay maaaring itakda sa oras ng pag-compile kung ang isang domain socket ay matatagpuan sa pag-configure. Ang setting na ito ay Unix lamang. Pinapagana ang pag-debug para sa PDO_MYSQL. Ang setting na ito ay magagamit lamang kapag ang PDO_MYSQL ay pinagsama-sama laban sa mysqlnd at sa PDO debug mode.