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。

如果您将 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 个注释

4
chad 0x40 digitellinc 0x2e com
16 年前
这基本上是 MySQL C API 中 mysql_stmt_attr_set 的一个包装器:https://dev.mysqlserver.cn/doc/refman/5.0/en/mysql-stmt-attr-set.html
To Top