(PHP 5, PHP 7, PHP 8)
mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Modifie le comportement d'une requête préparée
Style orienté objet
Style procédural
Modifie le comportement d'une requête préparée. Cette fonction peut être appelée plusieurs fois pour définir plusieurs attributs.
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 :
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. |
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.
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.