PHP Conference Japan 2024

預定義常數

以下常數由此擴充定義,並且只有在擴充已編譯到 PHP 中或在執行時動態載入時才會可用。

MYSQLI_READ_DEFAULT_GROUP (整數)

my.cnf 或使用 MYSQLI_READ_DEFAULT_FILE 指定的檔案中讀取指定群組的選項。

MYSQLI_READ_DEFAULT_FILE (整數)

從指定的選項檔案而不是從 my.cnf 讀取選項。

MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS (整數)
向伺服器指示客戶端可以處理過期密碼的沙盒模式。可以與 mysqli_options() 一起使用。
MYSQLI_OPT_LOAD_DATA_LOCAL_DIR (整數)
如果啟用,此選項指定允許在 LOAD DATA LOCAL 陳述式中從客戶端載入 LOCAL 資料的目錄。
MYSQLI_OPT_CONNECT_TIMEOUT (整數)

連線逾時(秒)。

MYSQLI_OPT_READ_TIMEOUT (整數)

指令執行結果逾時(秒)。從 PHP 7.2.0 開始可用。

MYSQLI_OPT_LOCAL_INFILE (整數)

啟用 LOAD LOCAL INFILE 指令。

MYSQLI_OPT_INT_AND_FLOAT_NATIVE (整數)

將整數和浮點數欄位轉換回 PHP 數字。僅適用於 mysqlnd。

MYSQLI_OPT_NET_CMD_BUFFER_SIZE (整數)

內部指令/網路緩衝區的大小。僅適用於 mysqlnd。

MYSQLI_OPT_NET_READ_BUFFER_SIZE (整數)

讀取 MySQL 指令封包主體時的單次最大讀取大小(位元組)。僅適用於 mysqlnd。

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT (整數)

MYSQLI_INIT_COMMAND (整數)

連線到 MySQL 伺服器時執行的指令。重新連線時會自動重新執行。

MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (整數)
向伺服器指示客戶端可以處理過期密碼的沙盒模式。可以與 mysqli_real_connect() 一起使用。
MYSQLI_CLIENT_FOUND_ROWS (整數)
返回符合的行數,而不是受影響的行數。
MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT (整數)
驗證伺服器憑證。
MYSQLI_CLIENT_SSL (整數)

使用 SSL(加密協定)。此選項不應由應用程式設定;它是在 MySQL 客戶端程式庫內部設定的。

MYSQLI_CLIENT_COMPRESS (整數)

使用壓縮協定。

MYSQLI_CLIENT_INTERACTIVE (整數)

允許在關閉連線之前閒置 interactive_timeout 秒(而不是 wait_timeout 秒)。用戶端的階段變數 wait_timeout 將被設定為階段變數 interactive_timeout 的值。

MYSQLI_CLIENT_IGNORE_SPACE (整數)

允許在函數名稱後使用空格。使所有函數名稱成為保留字。

MYSQLI_CLIENT_NO_SCHEMA (整數)

不允許 db_name.tbl_name.col_name 語法。

MYSQLI_CLIENT_MULTI_QUERIES

允許在單個 mysqli_query() 呼叫中使用多個以分號分隔的查詢。

MYSQLI_STORE_RESULT (整數)

用於使用緩衝的結果集。它的值為 0

MYSQLI_STORE_RESULT_COPY_DATA (整數)
從 PHP 8.1 開始,此常數不再有任何作用。在 PHP 8.1 之前,此常數用於將結果從內部 mysqlnd 緩衝區複製到提取的 PHP 變數中。預設情況下,mysqlnd 將使用引用邏輯來避免複製和重複保存在記憶體中的結果。對於某些結果集,例如,具有許多小行的結果集,複製方法可以減少整體記憶體使用量,因為保存結果的 PHP 變數可能會更早釋放。僅適用於 mysqlnd。自 PHP 8.4.0 起棄用。
MYSQLI_USE_RESULT (整數)

用於使用未緩衝的結果集。它的值為 1

MYSQLI_ASSOC (整數)

欄位以欄位名稱作為陣列索引返回到陣列中。

MYSQLI_NUM (整數)

欄位以列舉索引返回到陣列中。

MYSQLI_BOTH (整數)

欄位以數字索引和欄位名稱作為關聯索引返回到陣列中。

MYSQLI_NOT_NULL_FLAG (整數)

表示欄位被定義為 NOT NULL(非空)。

MYSQLI_PRI_KEY_FLAG (整數)

欄位是主索引的一部分。

MYSQLI_UNIQUE_KEY_FLAG (整數)

欄位是唯一索引的一部分。

MYSQLI_MULTIPLE_KEY_FLAG (整數)

欄位是索引的一部分。

MYSQLI_BLOB_FLAG (整數)

欄位定義為 BLOB

MYSQLI_UNSIGNED_FLAG (整數)

欄位定義為 UNSIGNED(無號)。

MYSQLI_ZEROFILL_FLAG (整數)

欄位定義為 ZEROFILL(零填充)。

MYSQLI_AUTO_INCREMENT_FLAG (整數)

欄位定義為 AUTO_INCREMENT(自動遞增)。

MYSQLI_TIMESTAMP_FLAG (整數)

欄位定義為 TIMESTAMP(時間戳記)。

MYSQLI_SET_FLAG (整數)

欄位定義為 SET(集合)。

MYSQLI_NUM_FLAG (整數)

欄位定義為 NUMERIC(數值)。

MYSQLI_PART_KEY_FLAG (整數)

欄位是多重索引的一部分。

MYSQLI_GROUP_FLAG (整數)

欄位是 GROUP BY 的一部分。

MYSQLI_NO_DEFAULT_VALUE_FLAG (整數)
欄位定義中沒有 DEFAULT 子句。這不適用於 NULLAUTO_INCREMENT 欄位,因為這些欄位分別具有預設值 NULL 和隱含的預設值。
MYSQLI_TYPE_DECIMAL (整數)

欄位定義為 DECIMAL(十進位)。

MYSQLI_TYPE_NEWDECIMAL (整數)

高精度 DECIMALNUMERIC 欄位。

MYSQLI_TYPE_BIT (整數)

欄位定義為 BIT(位元)。

MYSQLI_TYPE_TINY (整數)

欄位定義為 TINYINT(微整數)。

MYSQLI_TYPE_SHORT (整數)

欄位定義為 SMALLINT(小整數)。

MYSQLI_TYPE_LONG (整數)

欄位定義為 INT(整數)。

MYSQLI_TYPE_FLOAT (整數)

欄位定義為 FLOAT(浮點數)。

MYSQLI_TYPE_DOUBLE (整數)

欄位定義為 DOUBLE(雙精度浮點數)。

MYSQLI_TYPE_NULL (整數)

欄位定義為 DEFAULT NULL(預設為空值)。

MYSQLI_TYPE_TIMESTAMP (整數)

欄位定義為 TIMESTAMP(時間戳記)。

MYSQLI_TYPE_LONGLONG (整數)

欄位定義為 BIGINT

MYSQLI_TYPE_INT24 (整數)

欄位定義為 MEDIUMINT

MYSQLI_TYPE_DATE (整數)

欄位定義為 DATE

MYSQLI_TYPE_TIME (整數)

欄位定義為 TIME

MYSQLI_TYPE_DATETIME (整數)

欄位定義為 DATETIME

MYSQLI_TYPE_YEAR (整數)

欄位定義為 YEAR

MYSQLI_TYPE_NEWDATE (整數)

欄位定義為 DATE

MYSQLI_TYPE_INTERVAL (整數)

MYSQLI_TYPE_ENUM 的別名。從 PHP 8.4.0 起移除。

MYSQLI_TYPE_ENUM (整數)

欄位定義為 ENUM

MYSQLI_TYPE_SET (整數)

欄位定義為 SET(集合)。

MYSQLI_TYPE_TINY_BLOB (整數)

欄位定義為 TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB (整數)

欄位定義為 MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB (整數)

欄位定義為 LONGBLOB

MYSQLI_TYPE_BLOB (整數)

欄位定義為 BLOB

MYSQLI_TYPE_VAR_STRING (整數)

欄位定義為 VARCHAR

MYSQLI_TYPE_STRING (整數)

欄位定義為 CHARBINARY

MYSQLI_TYPE_CHAR (整數)

欄位定義為 TINYINT。關於 CHAR,請參閱 MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY (整數)

欄位定義為 GEOMETRY

MYSQLI_TYPE_JSON (整數)

欄位定義為 JSON。僅適用於 mysqlnd 和 MySQL 5.7.8 及更高版本。

MYSQLI_TYPE_VECTOR (整數)

欄位定義為 VECTOR

MYSQLI_NEED_DATA

繫結變數有更多可用資料。

MYSQLI_ENUM_FLAG (整數)

欄位定義為 ENUM

MYSQLI_BINARY_FLAG (整數)

欄位定義為 BINARY

MYSQLI_CURSOR_TYPE_FOR_UPDATE (整數 (int))

自 PHP 8.4.0 起移除。

MYSQLI_CURSOR_TYPE_NO_CURSOR (整數 (int))

MYSQLI_CURSOR_TYPE_READ_ONLY (整數 (int))

MYSQLI_CURSOR_TYPE_SCROLLABLE (整數 (int))

自 PHP 8.4.0 起移除。

MYSQLI_STMT_ATTR_CURSOR_TYPE (整數 (int))

MYSQLI_STMT_ATTR_PREFETCH_ROWS (整數 (int))

自 PHP 8.4.0 起移除。

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH (整數 (int))

MYSQLI_SET_CHARSET_NAME (整數 (int))

MYSQLI_REPORT_INDEX (整數 (int))

如果查詢中未使用索引或使用了錯誤的索引,則回報。

MYSQLI_REPORT_ERROR (整數 (int))

回報 mysqli 函式呼叫的錯誤。

MYSQLI_REPORT_STRICT (整數 (int))

針對錯誤拋出 mysqli_sql_exception 異常,而不是警告。

MYSQLI_REPORT_ALL (整數 (int))

設定所有選項(回報所有)。

MYSQLI_REPORT_OFF (整數 (int))

關閉回報。

MYSQLI_DEBUG_TRACE_ENABLED (整數 (int))

如果啟用了 mysqli_debug() 功能,則設為 1。

MYSQLI_SERVER_PUBLIC_KEY (整數 (int))

MYSQLI_REFRESH_GRANT (整數 (int))

重新整理授權表格。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_LOG (整數 (int))

清空紀錄檔,如同執行 FLUSH LOGS SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_TABLES (整數 (int))

清空表格快取,如同執行 FLUSH TABLES SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_HOSTS (整數 (int))

清空主機快取,如同執行 FLUSH HOSTS SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_REPLICA (整數 (int))

MYSQLI_REFRESH_SLAVE 常數的別名。自 PHP 8.1.0 起可用。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_STATUS (整數 (int))

重設狀態變數,如同執行 FLUSH STATUS SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_THREADS (整數)

清空執行緒快取。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_SLAVE (整數)

在從屬複製伺服器上:重設主伺服器資訊,並重新啟動從屬伺服器。如同執行 RESET SLAVE SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_MASTER (整數)

在主複製伺服器上:移除二進位紀錄索引中列出的二進位紀錄檔,並截斷索引檔。如同執行 RESET MASTER SQL 陳述式。自 PHP 8.4.0 起棄用。

MYSQLI_REFRESH_BACKUP_LOG (整數)
關閉並重新開啟備份紀錄檔。自 PHP 8.4.0 起棄用。
MYSQLI_TRANS_COR_AND_CHAIN (整數)

將 "AND CHAIN" 附加到 mysqli_commit()mysqli_rollback()

MYSQLI_TRANS_COR_AND_NO_CHAIN (整數)

將 "AND NO CHAIN" 附加到 mysqli_commit()mysqli_rollback()

MYSQLI_TRANS_COR_RELEASE (整數)

將 "RELEASE" 附加到 mysqli_commit()mysqli_rollback()

MYSQLI_TRANS_COR_NO_RELEASE (整數)

將 "NO RELEASE" 附加到 mysqli_commit()mysqli_rollback()

MYSQLI_TRANS_START_READ_ONLY (整數)

使用 mysqli_begin_transaction() 以 "START TRANSACTION READ ONLY" 開始交易。

MYSQLI_TRANS_START_READ_WRITE (整數)

使用 mysqli_begin_transaction() 以 "START TRANSACTION READ WRITE" 開始交易。

MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT (整數)

以 "START TRANSACTION WITH CONSISTENT SNAPSHOT" 開始交易。

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (整數)

需要 MySQL 5.6.5 或更高版本。

MYSQLI_IS_MARIADB (布林值)

mysqli 擴充功能是否已針對 MariaDB 用戶端函式庫建置。自 PHP 8.1.2 起可用。

MYSQLI_ASYNC (整數)
查詢以非同步方式執行,並且不會立即返回結果集。僅適用於 mysqlnd
MYSQLI_ON_UPDATE_NOW_FLAG (整數)
如果欄位被更新,它將取得目前的時間值。
新增註記

使用者貢獻的註記 2 則註記

1
匿名
16 年前
MYSQLI_TYPE_SHORT 用於 SMALLINT,而不是 INT
-2
jeriba4 at googlemail dot com
11 年前
請注意,雖然 CHAR 是 MySQL 中明確的字串類型,
但 MYSQLI_TYPE_CHAR 的解釋方式與 MYSQLI_TYPE_TINY 相同,後者是 MySQL 中的 TINYINT 數值類型。
因此,您無法使用它們各自的類型索引來區分這兩種欄位類型,因為兩者都設為整數一 (1)。
To Top