2024 年日本 PHP 研討會

Pdo\Mysql 類別

(PHP 8 >= 8.4.0)

簡介

一個表示使用 MySQL PDO 驅動程式連線的 PDO 子類別。

此驅動程式支援針對 MySQL 方言的專用 SQL 查詢剖析器。它可以處理以下內容

  • 使用雙重和反斜線作為跳脫機制的單引號和雙引號字面值
  • 使用雙重作為跳脫機制的反引號字面值
  • 雙破折號、C 風格註釋和雜湊 (Hash) 註釋。

類別概要

class Pdo\Mysql extends PDO {
/* 繼承的常數 */
public const int PDO::PARAM_NULL;
public const int PDO::PARAM_BOOL = 5;
公開 常數 整數 PDO::PARAM_INT = 1;
公開 常數 整數 PDO::PARAM_STR = 2;
公開 常數 整數 PDO::PARAM_LOB = 3;
公開 常數 整數 PDO::PARAM_STMT = 4;
公開 常數 整數 PDO::PARAM_INPUT_OUTPUT;
公開 常數 整數 PDO::PARAM_STR_NATL;
公開 常數 整數 PDO::PARAM_STR_CHAR;
公開 常數 整數 PDO::PARAM_EVT_ALLOC;
公開 常數 整數 PDO::PARAM_EVT_FREE;
公開 常數 整數 PDO::PARAM_EVT_EXEC_PRE;
公開 常數 整數 PDO::PARAM_EVT_EXEC_POST;
公開 常數 整數 PDO::PARAM_EVT_FETCH_PRE;
公開 常數 整數 PDO::PARAM_EVT_FETCH_POST;
公開 常數 整數 PDO::PARAM_EVT_NORMALIZE;
公開 常數 整數 PDO::FETCH_DEFAULT;
公開 常數 整數 PDO::FETCH_LAZY;
公開 常數 整數 PDO::FETCH_ASSOC;
公開 常數 整數 PDO::FETCH_NUM;
公開 常數 整數 PDO::FETCH_BOTH;
公開 常數 整數 PDO::FETCH_OBJ;
公開 常數 整數 PDO::FETCH_BOUND;
公開 常數 整數 PDO::FETCH_COLUMN;
公開 常數 整數 PDO::FETCH_CLASS;
公開 常數 整數 PDO::FETCH_INTO;
公開 常數 整數 PDO::FETCH_FUNC;
公開 常數 整數 PDO::FETCH_GROUP;
公開 常數 整數 PDO::FETCH_UNIQUE;
公開 常數 整數 PDO::FETCH_NAMED;
公開 常數 整數 PDO::ATTR_PREFETCH;
公開 常數 整數 PDO::ATTR_TIMEOUT;
公開 常數 整數 PDO::ATTR_ERRMODE;
公開常數 整數 PDO::ATTR_SERVER_VERSION;
公開常數 整數 PDO::ATTR_CLIENT_VERSION;
公開常數 整數 PDO::ATTR_SERVER_INFO;
公開常數 整數 PDO::ATTR_CONNECTION_STATUS;
公開常數 整數 PDO::ATTR_CASE;
公開常數 整數 PDO::ATTR_CURSOR_NAME;
公開常數 整數 PDO::ATTR_CURSOR;
公開常數 整數 PDO::ATTR_ORACLE_NULLS;
公開常數 整數 PDO::ATTR_PERSISTENT;
公開常數 整數 PDO::ATTR_STATEMENT_CLASS;
公開常數 整數 PDO::ATTR_FETCH_TABLE_NAMES;
公開常數 整數 PDO::ATTR_FETCH_CATALOG_NAMES;
公開常數 整數 PDO::ATTR_DRIVER_NAME;
公開常數 整數 PDO::ATTR_STRINGIFY_FETCHES;
公開常數 整數 PDO::ATTR_MAX_COLUMN_LEN;
公開常數 整數 PDO::ATTR_EMULATE_PREPARES;
公開常數 整數 PDO::ATTR_DEFAULT_FETCH_MODE;
公開常數 整數 PDO::ATTR_DEFAULT_STR_PARAM;
公開常數 整數 PDO::ERRMODE_SILENT;
公開常數 整數 PDO::ERRMODE_WARNING;
公開 常數 整數 PDO::CASE_NATURAL;
公開 常數 整數 PDO::CASE_LOWER;
公開 常數 整數 PDO::CASE_UPPER;
公開 常數 整數 PDO::NULL_NATURAL;
公開 常數 字串 PDO::ERR_NONE;
公開 常數 整數 PDO::FETCH_ORI_ABS;
公開 常數 整數 PDO::FETCH_ORI_REL;
公開 常數 整數 PDO::CURSOR_SCROLL;
/* 常數 */
公開 常數 整數 ATTR_LOCAL_INFILE;
公開 常數 整數 ATTR_INIT_COMMAND;
公開 (public) 常數 (const) 整數 (int) ATTR_MAX_BUFFER_SIZE;
公開 (public) 常數 (const) 整數 (int) ATTR_READ_DEFAULT_FILE;
公開 (public) 常數 (const) 整數 (int) ATTR_READ_DEFAULT_GROUP;
公開 (public) 常數 (const) 整數 (int) ATTR_COMPRESS;
公開 (public) 常數 (const) 整數 (int) ATTR_DIRECT_QUERY;
公開 (public) 常數 (const) 整數 (int) ATTR_FOUND_ROWS;
公開 (public) 常數 (const) 整數 (int) ATTR_IGNORE_SPACE;
公開 (public) 常數 (const) 整數 (int) ATTR_MULTI_STATEMENTS;
公開 (public) 常數 (const) 整數 (int) ATTR_SERVER_PUBLIC_KEY;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_KEY;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_CERT;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_CA;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_CAPATH;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_CIPHER;
公開 (public) 常數 (const) 整數 (int) ATTR_SSL_VERIFY_SERVER_CERT;
/* 方法 */
公開 (public) getWarningCount(): 整數 (int)
/* 繼承的方法 */
公開 (public) PDO::__construct(
    字串 (string) $dsn,
    字串 (string) 或 NULL $username = null,
    #[\SensitiveParameter] ?字串 $password = null,
    ?陣列 $options = null
)
公開 靜態 PDO::connect(
    字串 (string) $dsn,
    字串 (string) 或 NULL $username = null,
    #[\SensitiveParameter] ?字串 $password = null,
    ?陣列 $options = null
): static

公開 PDO::exec(字串 $statement): 整數|false

公開 PDO::getAttribute(整數 $attribute): 混合
公開 PDO::prepare(字串 $query, 陣列 $options = []): PDOStatement|false

公開 PDO::query(字串 $query, ?整數 $fetchMode = null): PDOStatement|false
公開 PDO::query(字串 $query, ?整數 $fetchMode = PDO::FETCH_COLUMN, 整數 $colno): PDOStatement|false
公開 PDO::query(
    字串 $query,
    ?整數 $fetchMode = PDO::FETCH_CLASS,
    字串 $classname,
    陣列 $constructorArgs
): PDOStatement|false
公開 PDO::query(字串 $query, ?整數 $fetchMode = PDO::FETCH_INTO, 物件 $object): PDOStatement|false
公開 PDO::quote(字串 $string, 整數 $type = PDO::PARAM_STR): 字串|false
公開 PDO::setAttribute(整數 $attribute, 混合 $value): 布林值
}

預定義常數

Pdo\Mysql::ATTR_USE_BUFFERED_QUERY
預設情況下,所有語句都在緩衝模式下執行。如果在 Pdo\Mysql 物件上將此屬性設為 false,MySQL 驅動程式將使用非緩衝模式。

範例 #1 設定 MySQL 非緩衝模式

<?php
$pdo
= new Pdo\Mysql("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
啟用 LOAD LOCAL INFILE

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY
允許將 LOCAL DATA 載入限制在此指定目錄中的檔案。從 PHP 8.1.0 開始可用。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_INIT_COMMAND
連線到 MySQL 伺服器時要執行的命令。重新連線時會自動重新執行。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_READ_DEFAULT_FILE
從指定的選項檔案讀取選項,而不是從 my.cnf 讀取。

注意 如果使用 mysqlnd,則此選項不可用,因為 mysqlnd 不會讀取 mysql 設定檔。

Pdo\Mysql::ATTR_READ_DEFAULT_GROUP
my.cnf 或使用 Pdo\Mysql::ATTR_READ_DEFAULT_FILE 指定的檔案中讀取指定群組的選項。

注意 如果使用 mysqlnd,則此選項不可用,因為 mysqlnd 不會讀取 mysql 設定檔。

Pdo\Mysql::ATTR_COMPRESS
啟用網路通訊壓縮。
Pdo\Mysql::ATTR_DIRECT_QUERY
PDO::ATTR_EMULATE_PREPARES 的別名。
Pdo\Mysql::ATTR_FOUND_ROWS
返回找到(符合)的列數,而不是變更的列數。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_IGNORE_SPACE
允許在 SQL 函數名稱後加上空格。使所有 SQL 函數名稱成為保留字。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_MAX_BUFFER_SIZE
最大緩衝區大小。預設為 1 MiB。

注意 使用 mysqlnd 編譯時,不支援此常數。

Pdo\Mysql::ATTR_MULTI_STATEMENTS
設定為 false 時,會在 PDO::prepare()PDO::query() 中停用多重查詢執行。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY
用於基於 SHA-256 驗證的 RSA 公開金鑰檔案。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_KEY
SSL 金鑰的檔案路徑。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_CERT
SSL 憑證的檔案路徑。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_CA
SSL 憑證授權單位的檔案路徑。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_CAPATH
包含受信任 SSL CA 憑證目錄的檔案路徑,這些憑證以 PEM 格式儲存。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_CIPHER
一個或多個允許用於 SSL 加密的密碼清單,格式為 OpenSSL 可理解的格式。例如:DHE-RSA-AES256-SHA:AES128-SHA

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT
提供一種停用驗證伺服器 SSL 憑證的方法。PHP 7.0.18 和 PHP 7.1.4 起可用。

注意此選項僅適用於 mysqlnd。

注意 只能在建構新的資料庫控制代碼時,於 driver_options 陣列中使用。

目錄

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top