(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
$attribute
, int $value
): boolStyle 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.
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
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.