mysqli_stmt::attr_set

mysqli_stmt_attr_set

Used to modify the behavior of a prepared statement

&reftitle.description;

&style.oop;

`bool` `mysqli_stmt::attr_set` `int` `attr` `int` `mode`

&style.procedural;

`bool` `mysqli_stmt_attr_set` `mysqli_stmt` `stmt` `int` `attr` `int` `mode`

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

&reftitle.parameters;

&mysqli.stmt.description;

`attr`

- 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 | If set to 1, 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. `mode` 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. `mode` can be in the range from 1 to the maximum value of unsigned long. The default is 1.

  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.

`mode`

- The value to assign to the attribute.