# mysqli_stmt::attr_set

# mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Used to modify the behavior of a prepared statement

### 说明

面向对象风格

public mysqli_stmt::attr_set(int `$attribute`, int `$value`): bool

过程化风格

mysqli_stmt_attr_set(mysqli_stmt `$statement`, int `$attribute`, int `$value`): bool

Used to modify the behavior of a prepared statement. This function may be called multiple times to set several attributes.

### 参数

`statement`

  仅以过程化样式：由 mysqli_stmt_init() 返回的 mysqli_stmt 对象。

`attribute`

  The attribute that you want to set. It can have one of the following values:

  Attribute values
  Character | Description
  --- | ---
  MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Setting to `true` causes mysqli_stmt_store_result() to update the metadata `MYSQL_FIELD->max_length` value.
  MYSQLI_STMT_ATTR_CURSOR_TYPE | Type of cursor to open for statement when mysqli_stmt_execute() is invoked. `value` can be `MYSQLI_CURSOR_TYPE_NO_CURSOR` (the default) or `MYSQLI_CURSOR_TYPE_READ_ONLY`.
  MYSQLI_STMT_ATTR_PREFETCH_ROWS | Number of rows to fetch from server at a time when using a cursor. `value` can be in the range from 1 to the maximum value of unsigned long. The default is 1. Removed as of PHP 8.4.0.

  If you use the `MYSQLI_STMT_ATTR_CURSOR_TYPE` option with `MYSQLI_CURSOR_TYPE_READ_ONLY`, a cursor is opened for the statement when you invoke mysqli_stmt_execute(). If there is already an open cursor from a previous mysqli_stmt_execute() call, it closes the cursor before opening a new one. mysqli_stmt_reset() also closes any open cursor before preparing the statement for re-execution. mysqli_stmt_free_result() closes any open cursor.

  If you open a cursor for a prepared statement, mysqli_stmt_store_result() is unnecessary.

`value`

  The value to assign to the attribute.

### 返回值

成功时返回 `true`， 或者在失败时返回 `false`。

### 错误／异常

If mysqli error reporting is enabled (`MYSQLI_REPORT_ERROR`) and the requested operation fails, a warning is generated. If, in addition, the mode is set to `MYSQLI_REPORT_STRICT`, a mysqli_sql_exception is thrown instead.

### 参见

- » Connector/MySQL mysql_stmt_attr_set()

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open