W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
PDO_MYSQL 是實(shí)現(xiàn) PHP 的驅(qū)動(dòng)程序 數(shù)據(jù)對(duì)象 (PDO) 接口,用于啟用從 PHP 到 MySQL 數(shù)據(jù)庫(kù)的訪問(wèn)。
默認(rèn)情況下,PDO_MYSQL使用模擬準(zhǔn)備。
MySQL 8的
運(yùn)行 7.1.16 之前的 PHP 版本或 7.2.4 之前的 PHP 版本時(shí),請(qǐng)將 MySQL 8 Server的默認(rèn)密碼插件mysql_native_password否則,即使不使用caching_sha2_password,您也會(huì)看到類似于The server requested authentication method unknown to the client [caching_sha2_password]的錯(cuò)誤。
這是因?yàn)?MySQL 8 默認(rèn)為 caching_sha2_password,這是一個(gè)插件 舊版 PHP (mysqlnd) 無(wú)法識(shí)別。相反,請(qǐng)將其更改為 設(shè)置在 中。從 PHP 7.4.4 開(kāi)始完全支持 caching_sha2_password 插件。對(duì)于較舊的版本,mysql_xdevapi擴(kuò)展可以 支持它。default_authentication_plugin=mysql_native_passwordmy.cnf
警告注意:某些MySQL表類型(存儲(chǔ)引擎)不支持事務(wù)。什么時(shí)候 使用不支持的表類型編寫事務(wù)數(shù)據(jù)庫(kù)代碼 事務(wù),MySQL會(huì)假裝事務(wù)啟動(dòng)成功。 此外,任何發(fā)出的 DDL 查詢都會(huì)隱式地 提交任何待處理事務(wù)。
注意:MySQL 驅(qū)動(dòng)程序無(wú)法通過(guò) PDOStatement::bindParam() 正確支持 PDO::P ARAM_INPUT_OUTPUT;雖然可以使用這樣的參數(shù), 它們不會(huì)更新(即忽略實(shí)際輸出)。
常見(jiàn)的 Unix 發(fā)行版包括 PHP 的二進(jìn)制版本,可以 安裝。盡管這些二進(jìn)制版本通常使用 支持MySQL擴(kuò)展,擴(kuò)展庫(kù) 它們本身可能需要使用額外的軟件包進(jìn)行安裝。檢查 所選發(fā)行版附帶的包管理器 可用性。
例如,在 Ubuntu 上,軟件包安裝 ext/mysql、ext/mysqli 和 PDO_MYSQL PHP 擴(kuò)展。在 CentOS 上, 該軟件包還安裝了這三個(gè) PHP 擴(kuò)展。php5-mysqlphp-mysql
或者,您可以自己編譯此擴(kuò)展。構(gòu)建 PHP source 還允許您指定要使用的 MySQL 擴(kuò)展 作為每個(gè)擴(kuò)展的客戶端庫(kù)選擇。
編譯時(shí),使用 --with-pdo-mysql[=DIR] 安裝 PDO MySQL 擴(kuò)展,其中可選的是 MySQL 基本庫(kù)。Mysqlnd 是默認(rèn)庫(kù)。有關(guān)選擇庫(kù)的詳細(xì)信息,請(qǐng)參閱選擇 MySQL 庫(kù)。[=DIR]
(可選)--with-mysql-sock[=DIR] 設(shè)置為 location 到所有 MySQL 擴(kuò)展(包括 PDO_MYSQL)的 MySQL unix 套接字指針。如果 未指定,則搜索默認(rèn)位置。
或者,--with-zlib-dir[=DIR] 用于設(shè)置 libz 安裝前綴的路徑。
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
使用適當(dāng)?shù)?nbsp;PDO_MySQL 常量啟用 SSL 支持, 這相當(dāng)于調(diào)用 ? MySQL C API 函數(shù) mysql_ssl_set()。 此外,無(wú)法使用 PDO::setAttribute 啟用 SSL,因?yàn)檫B接 已存在。另請(qǐng)參閱有關(guān) ? 連接到 帶有SSL的MySQL。
下列常量由此驅(qū)動(dòng)定義,且僅在擴(kuò)展編譯入 PHP 或在運(yùn)行時(shí)動(dòng)態(tài)載入時(shí)可用。 另外,使用此驅(qū)動(dòng)時(shí),僅會(huì)使用這些驅(qū)動(dòng)特定的常量。 使用其他驅(qū)動(dòng)的驅(qū)動(dòng)特定的常量可能會(huì)導(dǎo)致不可預(yù)見(jiàn)的情況。 如果代碼可運(yùn)行于多個(gè)驅(qū)動(dòng),PDO::getAttribute() 可被用于獲取 PDO_ATTR_DRIVER_NAME 屬性以檢查驅(qū)動(dòng)。
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
(bool)false
,則 MySQL 驅(qū)動(dòng)程序?qū)⑹褂?無(wú)緩沖模式。示例 #1 設(shè)置MySQL無(wú)緩沖模式
<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>
PDO::MYSQL_ATTR_LOCAL_INFILE
(int)使。LOAD LOCAL INFILE
請(qǐng)注意,此常量只能在構(gòu)造新的數(shù)據(jù)庫(kù)句柄時(shí)在數(shù)組中使用。driver_options
PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY
(字符串)允許將 LOCAL DATA 加載限制為位于此指定的文件中 目錄。從 PHP 8.1.0 開(kāi)始可用。
請(qǐng)注意,此常量只能在構(gòu)造新的數(shù)據(jù)庫(kù)句柄時(shí)在數(shù)組中使用。driver_options
PDO::MYSQL_ATTR_INIT_COMMAND
(字符串)連接到MySQL服務(wù)器時(shí)要執(zhí)行的命令。將 重新連接時(shí)自動(dòng)重新執(zhí)行。
請(qǐng)注意,此常量只能在構(gòu)造新的數(shù)據(jù)庫(kù)句柄時(shí)在數(shù)組中使用。driver_options
PDO::MYSQL_ATTR_READ_DEFAULT_FILE
(int)從命名選項(xiàng)文件中讀取選項(xiàng),而不是從 中讀取選項(xiàng)。如果出現(xiàn)以下情況,則此選項(xiàng)不可用 使用 mysqlnd,因?yàn)?mysqlnd 不讀取 mysql 配置文件。my.cnf
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP
(int)從命名組中讀取選項(xiàng) from 或 用 MYSQL_READ_DEFAULT_FILE
指定的文件。此選項(xiàng) 如果使用 mysqlnd,則不可用,因?yàn)?mysqlnd 不讀取 mysql 配置文件。my.cnf
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
(int)最大緩沖區(qū)大小。默認(rèn)值為 1 MiB。當(dāng)以下情況下,不支持此常量 針對(duì) mysqlnd 編譯。
PDO::MYSQL_ATTR_DIRECT_QUERY
(int)執(zhí)行直接查詢,不要使用預(yù)準(zhǔn)備的語(yǔ)句。
PDO::MYSQL_ATTR_FOUND_ROWS
(int)返回找到的(匹配的)行數(shù),而不是 更改的行數(shù)。
PDO::MYSQL_ATTR_IGNORE_SPACE
(int)允許在函數(shù)名稱后有空格。使所有功能 名稱保留字。
PDO::MYSQL_ATTR_COMPRESS
(int)啟用網(wǎng)絡(luò)通信壓縮。
PDO::MYSQL_ATTR_SSL_CA
(int)SSL 證書頒發(fā)機(jī)構(gòu)的文件路徑。
PTO::MyScle_Adr_SSL_Cabath
(整數(shù)))包含受信任 SSL 的目錄的文件路徑 CA 證書,以 PEM 格式存儲(chǔ)。
PDO::MYSQL_ATTR_SSL_CERT
(整數(shù))SSL 證書的文件路徑。
PDO::MYSQL_ATTR_SSL_CIPHER
(int)用于 SSL 加密的一個(gè)或多個(gè)允許的密碼的列表,格式如下 被 OpenSSL 理解。例如:DHE-RSA-AES256-SHA:AES128-SHA
PDO::MYSQL_ATTR_SSL_KEY
(整數(shù))The file path to the SSL key.
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
(int)Provides a way to disable verification of the server SSL certificate. This option is available only with mysqlnd.
自以下版本起 PHP 7.0.18 and PHP 7.1.4.
PDO::MYSQL_ATTR_MULTI_STATEMENTS
(int)Disables multi query execution in both PDO::prepare() and PDO::query() when set to false
.
Note, this constant can only be used in the array when constructing a new database handle. driver_options
這些函數(shù)的行為受 中的設(shè)置影響。 php.ini
名字 | 默認(rèn) | 可修改范圍 |
---|---|---|
pdo_mysql.default_socket | “/tmp/mysql.sock” | INI_SYSTEM |
pdo_mysql.調(diào)試 | 零 | INI_SYSTEM |
有關(guān) INI_* 樣式的更多詳情與定義,見(jiàn)
配置可被設(shè)定范圍
。
這是配置指令的簡(jiǎn)短說(shuō)明。
pdo_mysql.default_socket
字符串設(shè)置 Unix 域套接字。如果出現(xiàn)以下情況,則可以在編譯時(shí)設(shè)置此值 在 Configure 中找到域套接字。此 ini 設(shè)置僅適用于 Unix。
pdo_mysql.debug
布爾啟用PDO_MYSQL的調(diào)試。此設(shè)置僅在以下情況下可用PDO_MYSQL 針對(duì) mysqlnd 和 PDO 調(diào)試模式進(jìn)行編譯。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: