這基本上是 MySQL C API 中 mysql_stmt_attr_set 的一個包裝器:https://mysqldev.dev.org.tw/doc/refman/5.0/en/mysql-stmt-attr-set.html
(PHP 5, PHP 7, PHP 8)
mysqli_stmt::attr_set -- mysqli_stmt_attr_set — 用於修改預備語句的行為
物件導向風格
程序風格
用於修改預備語句的行為。此函式可以被多次呼叫以設定多個屬性。
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
要賦值給屬性的值。
如果啟用了 mysqli 錯誤報告(MYSQLI_REPORT_ERROR
)且請求的操作失敗,則會產生警告。此外,如果模式設定為 MYSQLI_REPORT_STRICT
,則會改為拋出 mysqli_sql_exception。
這基本上是 MySQL C API 中 mysql_stmt_attr_set 的一個包裝器:https://mysqldev.dev.org.tw/doc/refman/5.0/en/mysql-stmt-attr-set.html