PHP Conference Japan 2024

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set用於修改預備語句的行為

說明

物件導向風格

public mysqli_stmt::attr_set(int $attribute, int $value): bool

程序風格

mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value): bool

用於修改預備語句的行為。此函式可以被多次呼叫以設定多個屬性。

參數

statement

僅限程序式風格:由 mysqli_stmt_init() 返回的 mysqli_stmt 物件。

attribute

您想要設定的屬性。它可以是下列值之一

屬性值
字元 說明
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH 設定為 true 會導致 mysqli_stmt_store_result() 更新中繼資料 MYSQL_FIELD->max_length 值。
MYSQLI_STMT_ATTR_CURSOR_TYPE 呼叫 mysqli_stmt_execute() 時為語句開啟的游標類型。 value 可以是 MYSQLI_CURSOR_TYPE_NO_CURSOR(預設值)或 MYSQLI_CURSOR_TYPE_READ_ONLY
MYSQLI_STMT_ATTR_PREFETCH_ROWS 使用游標時,一次從伺服器擷取的列數。 value 的範圍可以從 1 到無符號長整數的最大值。預設值為 1。自 PHP 8.4.0 起移除。

如果您將 MYSQLI_STMT_ATTR_CURSOR_TYPE 選項與 MYSQLI_CURSOR_TYPE_READ_ONLY 一起使用,則在您呼叫 mysqli_stmt_execute() 時,會為該語句開啟一個游標。如果先前呼叫 mysqli_stmt_execute() 時已經開啟了一個游標,它會在開啟新的游標之前關閉該游標。mysqli_stmt_reset() 也會在準備重新執行語句之前關閉任何開啟的游標。mysqli_stmt_free_result() 會關閉任何開啟的游標。

如果您為預備語句開啟游標,則不需要 mysqli_stmt_store_result()

value

要賦值給屬性的值。

返回值

成功時返回 true,失敗時返回 false

錯誤/例外

如果啟用了 mysqli 錯誤報告(MYSQLI_REPORT_ERROR)且請求的操作失敗,則會產生警告。此外,如果模式設定為 MYSQLI_REPORT_STRICT,則會改為拋出 mysqli_sql_exception

新增註解

使用者貢獻的註解 1 則註解

chad 0x40 digitellinc 0x2e com
16 年前
這基本上是 MySQL C API 中 mysql_stmt_attr_set 的一個包裝器:https://mysqldev.dev.org.tw/doc/refman/5.0/en/mysql-stmt-attr-set.html
To Top