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

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

DDD
Libérer: 2024-11-28 06:29:15
original
435 Les gens l'ont consulté

How to Resolve the

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

Assurer une utilisation appropriée de mysqli_multi_query est crucial pour éviter de rencontrer le message « Normes strictes ». Bien que l'élimination des points-virgules ait pu éliminer un problème, cela n'a pas résolu le problème principal.

Pour répondre au message d'erreur, tenez compte des suggestions suivantes :

Comprendre mysqli_next_result()

mysqli_next_result() avance le pointeur de résultat vers le prochain jeu de résultats généré par mysqli_multi_query(). Cependant, son exécution nécessite un jeu de résultats initial, qui n'est pas garanti dans tous les cas.

Solution

Incorporez les vérifications suivantes dans la boucle 'do' :

do { if ($result = mysqli_store_result($db)) { // ensemble de résultats du processus } } while (mysqli_more_results($db) && mysqli_next_result($db));

Syntaxe alternative : WHILE{} Boucle

Tandis que le classique "IF(){DO{} La syntaxe WHILE}" est valide, une alternative simplifiée et plus lisible est :

while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, imploser(';', $queries))))

Cette approche définit clairement les conditions d'exécution de la boucle et de vérification des ensembles de résultats.

Extraits complets

Pour un solution complète, considérez les extraits suivants pour gérer les requêtes avec ou sans jeux de résultats :

Classique "IF(){DO{} WHILE}" Syntaxe :

if (mysqli_multi_query($mysqli, implode(';', $queries))) {
    do {
        echo "<br><br>", key($queries), ": ", current($queries);  // display key:value @ pointer
        if ($result = mysqli_store_result($mysqli)) {   // if a result set
            while ($rows = mysqli_fetch_assoc($result)) {
                echo "<br>Col = {$rows["Col"]}";
            }
            mysqli_free_result($result);
        }
        echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
    } while (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}
Copier après la connexion

Roue réinventée "WHILE{}" Syntaxe :

while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, implode(';', $queries)))) {
    echo "<br><br>", key($queries), ": ", current($queries);  // display array pointer key:value
    if ($result = mysqli_store_result($mysqli)) {
        while ($rows = mysqli_fetch_assoc($result)) {
            echo "<br>Col = {$rows["Col"]}";
        }
        mysqli_free_result($result);
    }
    echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}
Copier après la connexion

Ces les extraits gèrent efficacement les requêtes avec ou sans jeux de résultats et fournissent une gestion détaillée des erreurs à des fins de débogage.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal