这基本上是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。从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://dev.mysqlserver.cn/doc/refman/5.0/en/mysql-stmt-attr-set.html