next_result
Dans cet article, nous nous concentrerons sur la fonction mysqli_next_result() de PHP, qui permet de passer au jeu de résultats suivant après l'exécution de plusieurs requêtes avec mysqli_multi_query().
Introduction à la fonction mysqli_next_result()
La fonction mysqli_next_result() est une fonction intégrée à PHP qui déplace le pointeur de résultat vers le jeu de résultats suivant lorsque plusieurs requêtes sont exécutées via mysqli_multi_query(). Elle renvoie une valeur booléenne indiquant le succès ou l'échec.
Comment utiliser la fonction mysqli_next_result()
Pour utiliser mysqli_next_result(), exécutez vos requêtes avec mysqli_multi_query(), puis parcourez les résultats. Il est recommandé de vérifier mysqli_more_results() avant d'appeler mysqli_next_result() afin d'éviter les avertissements liés aux requêtes ne renvoyant pas de résultats (par exemple, INSERT ou UPDATE). Voici un exemple :
Comment utiliser la fonction mysqli_next_result() ?
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
die("Connection failed: " . mysqli_connect_error());
}
$query = "SELECT * FROM table1; SELECT * FROM table2; SELECT * FROM table3;";
if (mysqli_multi_query($mysqli, $query)) {
do {
/* process current result set */
if ($result = mysqli_store_result($mysqli)) {
// process result set
mysqli_free_result($result);
}
} while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
} else {
echo "Multi-query failed: " . mysqli_error($mysqli);
}
mysqli_close($mysqli);
?>Dans cet exemple, nous établissons une connexion avec gestion des erreurs, puis exécutons plusieurs requêtes à l'aide de mysqli_multi_query(). La boucle do...while vérifie mysqli_more_results() pour avancer en toute sécurité dans chaque jeu de résultats grâce à mysqli_next_result(), ce qui évite les avertissements liés aux requêtes sans résultat. mysqli_store_result() est utilisé ici pour charger le jeu de résultats en mémoire, mais il est optionnel ; pour de grands ensembles de données, mysqli_use_result() ou la récupération directe peut être plus économe en mémoire. Enfin, nous fermons la connexion avec mysqli_close().
Conclusion
En conclusion, la fonction mysqli_next_result() est un outil utile pour passer au jeu de résultats suivant lors du traitement de plusieurs requêtes avec mysqli_multi_query(). En comprenant comment utiliser cette fonction conjointement avec mysqli_more_results(), vous pouvez exécuter et traiter efficacement plusieurs requêtes avec l'extension MySQLi de PHP.
Pratique
Que fait la fonction PHP mysqli::next_result ?