mysqli_stmt::attr_set
(mysqli_stmt_attr_set)用于修改预准备语句的行为
PHP 8.1.0 起引入
mysqli_stmt::attr_set 函数用于设置预处理语句对象(mysqli_stmt)的属性。该函数主要用于设置语句执行的一些低级行为,例如设置更新最大行数等。
public mysqli_stmt::attr_set(int $attribute, int $value): bool
返回布尔值。成功时返回 true,失败时返回 false。
$conn = new mysqli("localhost", "username", "password", "database"); $stmt = $conn->prepare("SELECT id, name FROM users"); $stmt->attr_set(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, 1); $stmt->execute(); $stmt->store_result(); <p>$meta = $stmt->result_metadata();<br> while ($field = $meta->fetch_field()) {<br> echo "Field {$field->name} has max length {$field->max_length}<br>";<br> }</p> <p>$stmt->close();<br> $conn->close();<br>
在这个示例中,使用 attr_set 设置了 MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH 属性为启用状态(1),这会让 max_length 字段在获取元数据时包含结果集中字段的最大长度。通过 fetch_field() 访问这些元数据并输出字段的最大长度。