Maison > développement back-end > tutoriel php > Comment résoudre l'erreur « Normes strictes : mysqli_next_result() avec mysqli_multi_query » ?

Comment résoudre l'erreur « Normes strictes : mysqli_next_result() avec mysqli_multi_query » ?

Patricia Arquette
Libérer: 2024-12-24 05:41:17
original
734 Les gens l'ont consulté

How to Resolve

Normes strictes : résolution de l'erreur "mysqli_next_result() avec mysqli_multi_query"

Problème :

Lors de l'utilisation de mysqli_multi_query, les utilisateurs peuvent rencontrer une erreur « Normes strictes » liée à mysqli_next_result(). Cette erreur indique qu'il n'y a pas de prochain ensemble de résultats à traiter.

Réponse initiale :

Une réponse a tenté de corriger le problème en modifiant la $querystring mais n'a pas résolu la cause première de l’erreur des normes strictes. Une autre réponse a conseillé de changer la structure de la boucle de "DO WHILE" à "WHILE", ce qui n'est pas nécessaire.

Solution réelle :

Pour résoudre l'erreur, modifiez le code comme suit :

do {
    if ($result = mysqli_store_result($db)) {
        // Process result set
    }
} while (mysqli_more_results($db) && mysqli_next_result($db));
Copier après la connexion

Cela garantit que la condition de la boucle sera remplie uniquement lorsqu'il y aura plus d'ensembles de résultats à traiter, empêchant ainsi le erreur.

Considérations supplémentaires :

  • Dans l'exemple fourni, les requêtes INSERT sont exécutées, qui ne produisent pas d'ensembles de résultats. Par conséquent, la boucle ne s’exécutera pas dans ce cas. Pensez à utiliser mysqli_affected_rows() pour récupérer le nombre de lignes affectées.
  • Pour une solution complète, il est conseillé d'inclure la gestion des erreurs pour afficher les erreurs le cas échéant.

Amélioré Extrait :

if (mysqli_multi_query($db, $querystring)) {
    do {
        if ($result = mysqli_store_result($db)) {
            // Process result set
            mysqli_free_result($result);
        } else if (mysqli_error($db)) {
            echo "Error: " . mysqli_error($db);
            break;
        }
    } while (mysqli_more_results($db) && mysqli_next_result($db));
}
Copier après la connexion

Conclusion :

L'erreur « Normes strictes : mysqli_next_result() : Il n'y a pas de jeu de résultats suivant » est résolue en utilisant mysqli_more_results () pour vérifier la présence d’ensembles de résultats supplémentaires. L'extrait amélioré gère les résultats positifs et négatifs des opérations mysqli_multi_query et mysqli_store_result.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal