这基本上是 MySQL C API 中 mysql_stmt_attr_set 的一个包装器:https://dev.mysqlserver.cn/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。 |
如果您将 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://dev.mysqlserver.cn/doc/refman/5.0/en/mysql-stmt-attr-set.html