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 ?

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 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-29 03:35:16939parcourir

Why Am I Getting a

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

  • Il n'est pas nécessaire de passer de DO WHILE à WHILE comme suggéré par certains.
  • Si aucun résultat les ensembles sont générés par les requêtes, aucune boucle ne sera exécutée.
  • De plus, le code peut être modifié pour compter le nombre de lignes affectées ou afficher des messages d'erreur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn