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://dev.mysqlserver.cn/doc/refman/5.0/en/mysql-stmt-attr-set.html
To Top