Maison >développement back-end >tutoriel php >Pourquoi est-ce que j'obtiens une erreur « mysqli_next_result() : il n'y a pas de jeu de résultats suivant » avec mysqli_multi_query ?
Normes strictes : erreur mysqli_next_result() avec mysqli_multi_query
De nombreux développeurs rencontrent une erreur de normes strictes lors de l'utilisation de mysqli_multi_query. Ce message d'erreur indique "mysqli_next_result() : Il n'y a pas de jeu de résultats suivant. Veuillez appeler mysqli_more_results()/mysqli::more_results() pour vérifier si vous devez appeler cette fonction/méthode."
Root Cause
L'erreur survient lorsque mysqli_multi_query est utilisé sans vérifier s'il y a des ensembles de résultats. Par défaut, mysqli_next_result passe au jeu de résultats suivant, même s'il n'en existe pas. Pour éviter l'erreur, la fonction mysqli_more_results doit être invoquée au préalable pour vérifier la présence de tout jeu de résultats supplémentaire.
Solution
Pour résoudre le problème, utilisez le code suivant :
if (mysqli_multi_query($db, $querystring)) { do { if ($result = mysqli_store_result($db)) { // ... } } while (mysqli_more_results($db) && mysqli_next_result($db)); }
Cela garantit que mysqli_next_result n'est exécuté que s'il y a un résultat ultérieur set.
Notes complémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!