(PHP 5, PHP 7, PHP 8)
mysqli::store_result -- mysqli_store_result — Transfère un jeu de résultats à partir de la dernière requête
Description
Style orienté objet
public
mysqli::store_result(int
$mode
= 0): mysqli_result|false
mysqli_store_result(mysqli
$mysql
, int
$mode
= 0): mysqli_result|false
Liste de paramètres
-
mysql
-
Seulement en style procédural : Un objet mysqli
retourné par la fonction mysqli_connect() ou par la
fonction mysqli_init().
-
mode
-
L'option que vous souhaitez définir. À partir de PHP 8.1, ce paramètre n'a aucun effet.
Elle peut prendre l'une des valeurs suivantes :
Options valides
Nom |
Description |
MYSQLI_STORE_RESULT_COPY_DATA |
Copie les résultats récupérés d'un buffer interne mysqlnd dans des variables PHP.
Par défaut, mysqlnd utilisera une référence logique pour éviter la copie et la
duplications des résultats contenus en mémoire. Pour certains jeux de résultats,
par exemple, les jeux de résultats avec beaucoup de petites lignes, l'approche
de la copie peut réduire l'utilisation mémoire par les variables PHP contenant
les résultats peuvent être libérées rapidement (disponible uniquement avec mysqlnd)
|
Valeurs de retour
Retourne un résultat stocké sous la forme d'un objet ou false
si une erreur survient.
Note:
mysqli_store_result() retourne false
dans le cas
où la requête ne retourne pas de jeu de résultat (si la requête est de
type INSERT par exemple). Cette fonction retournera toujours false
si
le jeu de résultats ne peut être lu. Vous pouvez savoir s'il y a une
erreur en utilisant la fonction mysqli_error() et en
regardant si elle renvoie une chaîne vide, ou si
mysqli_errno() retourne zéro, ou bien si
mysqli_field_count() retourne une valeur différente
de zéro. Une autre raison pour que cette fonction retourne false
est
que le jeu de résultats retourné après une requête réussie appelée par
mysqli_query() est trop long (la mémoire pour
celui-ci ne peut être allouée). Si mysqli_field_count()
retourne une valeur différente de zéro, le traitement devrait produire un jeu
de résultats non vide.
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.
Exemples
Voir la fonction mysqli_multi_query().
Notes
Note:
Il est toujours conseillé de libérer la mémoire allouée pour le résultat en
utilisant la fonction mysqli_free_result(),
lors du transfert de grands résultats en utilisant la fonction
mysqli_store_result() cela devient particulièrement
important.
Voir aussi