English | 简体中文 | 繁體中文
查询

mysqli_stmt::attr_set()函数—用法及示例

「 设置预处理语句对象的属性 」


函数名:mysqli_stmt::attr_set()

适用版本:PHP 8.0.0 及以上版本

用法:该方法用于设置预处理语句对象的属性。

语法:bool mysqli_stmt::attr_set(int $attr, mixed $mode)

参数:

  • $attr:表示要设置的属性,可以是以下常量之一:
    • MYSQLI_STMT_ATTR_CURSOR_TYPE:设置预处理语句的游标类型。可选值包括:
      • MYSQLI_CURSOR_TYPE_NO_CURSOR:不使用游标。
      • MYSQLI_CURSOR_TYPE_READ_ONLY:只读游标。
      • MYSQLI_CURSOR_TYPE_FOR_UPDATE:可更新游标。
      • MYSQLI_CURSOR_TYPE_SCROLLABLE:可滚动游标。
    • MYSQLI_STMT_ATTR_PREFETCH_ROWS:设置预处理语句的预取行数。可选值为正整数。
  • $mode:表示要设置的属性的值。

返回值:成功时返回 true,失败时返回 false。

示例:

// 创建数据库连接
$mysqli = new mysqli("localhost", "username", "password", "database");

// 准备预处理语句
$stmt = $mysqli->prepare("SELECT id, name FROM my_table WHERE age > ?");

// 设置预处理语句的游标类型为可滚动游标
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_SCROLLABLE);

// 设置预处理语句的预取行数为 100
$stmt->attr_set(MYSQLI_STMT_ATTR_PREFETCH_ROWS, 100);

// 绑定参数并执行查询
$age = 18;
$stmt->bind_param("i", $age);
$stmt->execute();

// 获取结果集
$result = $stmt->get_result();

// 遍历结果集并输出数据
while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
}

// 关闭预处理语句和数据库连接
$stmt->close();
$mysqli->close();

以上示例中,我们首先创建了一个数据库连接对象 $mysqli,并使用该对象准备了一个预处理语句 $stmt。然后,我们使用 mysqli_stmt::attr_set() 方法分别设置了预处理语句的游标类型为可滚动游标和预取行数为 100。接下来,我们绑定参数并执行了查询,然后通过获取结果集并遍历输出了查询结果。最后,我们关闭了预处理语句和数据库连接。

请注意,使用 mysqli_stmt::attr_set() 方法之前必须先准备好预处理语句对象。

补充纠错
上一个函数: mysqli_stmt::bind_param()函数
下一个函数: mysqli_stmt::attr_get()函数
热门PHP函数
分享链接