# mysqli_stmt::attr_set

# mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Modifie le comportement d'une requête préparée

### Description

Style orienté objet

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

Style procédural

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

Modifie le comportement d'une requête préparée. Cette fonction peut être appelée plusieurs fois pour définir plusieurs attributs.

### Liste de paramètres

`statement`

  Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

`attribute`

  L'attribut que vous voulez définir. Il peut avoir une des valeurs suivantes :

  Valeurs des attributs
  Caractère | Description
  --- | ---
  MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Si défini à `true`, la fonction mysqli_stmt_store_result() mettra à jour la valeur de la méta-donnée `MYSQL_FIELD->max_length`.
  MYSQLI_STMT_ATTR_CURSOR_TYPE | Type du curseur permettant l'ouverture de la requête lorsque la fonction mysqli_stmt_execute() est appelée. `value` peut valoir `MYSQLI_CURSOR_TYPE_NO_CURSOR` (par défaut) ou `MYSQLI_CURSOR_TYPE_READ_ONLY`.
  MYSQLI_STMT_ATTR_PREFETCH_ROWS | Nombre de lignes à récupérer depuis le serveur en une fois lors de l'utilisation d'un curseur. `value` peut être compris entre 1 et la valeur maximale d'un type long non-signé. Par défaut, vaut 1. Supprimé à partir de PHP 8.4.0.

  Si vous utilisez l'option `MYSQLI_STMT_ATTR_CURSOR_TYPE` avec `MYSQLI_CURSOR_TYPE_READ_ONLY`, un curseur sera ouvert pour la requête lors de l'appel à la fonction mysqli_stmt_execute(). S'il y a déjà un curseur d'ouvert depuis un précédent appel à la fonction mysqli_stmt_execute(), il sera fermé avant d'en ouvrir un nouveau. La fonction mysqli_stmt_reset() ferme également tous les curseurs avant de préparer la requête pour une ré-exécution. La fonction mysqli_stmt_free_result() ferme tout curseur ouvert.

  Si vous ouvrez un curseur pour une requête préparée, la fonction mysqli_stmt_store_result() n'est pas nécessaire.

`value`

  La valeur à assigner à l'attribut.

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (`MYSQLI_REPORT_ERROR`) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur `MYSQLI_REPORT_STRICT`, une mysqli_sql_exception est lancée à la place.

### Voir aussi

- » Connecteur / MySQL mysql_stmt_attr_set()