Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebe ich den „Strenge Standards: Behebung des mysqli_next_result()-Fehlers' mit mysqli_multi_query?

Wie behebe ich den „Strenge Standards: Behebung des mysqli_next_result()-Fehlers' mit mysqli_multi_query?

DDD
Freigeben: 2024-11-28 06:29:15
Original
435 Leute haben es durchsucht

How to Resolve the

Strenge Standards: Beheben des mysqli_next_result()-Fehlers mit mysqli_multi_query

Die Sicherstellung der ordnungsgemäßen Nutzung von mysqli_multi_query ist entscheidend, um die Meldung „Strenge Standards“ zu vermeiden. Das Eliminieren von Semikolons hat zwar möglicherweise ein Problem beseitigt, das Kernproblem wurde dadurch jedoch nicht gelöst.

Um die Fehlermeldung zu beheben, berücksichtigen Sie die folgenden Vorschläge:

Grundlegendes zu mysqli_next_result()

mysqli_next_result() verschiebt den Ergebniszeiger auf die nächste von generierte Ergebnismenge mysqli_multi_query(). Für die Ausführung ist jedoch ein anfänglicher Ergebnissatz erforderlich, der nicht in allen Fällen garantiert ist.

Lösung

Integrieren Sie die folgenden Prüfungen in die „do“-Schleife:

do { if ($result = mysqli_store_result($db)) { // Ergebnismenge verarbeiten } } while (mysqli_more_results($db) && mysqli_next_result($db));

Alternative Syntax: WHILE{} Schleife

Während das klassische „IF(){DO{} WHILE}“-Syntax ist gültig, eine vereinfachte und besser lesbare Alternative ist:

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))))

Dieser Ansatz definiert klar die Bedingungen für die Ausführung der Schleife und die Prüfung auf Ergebnismengen.

Umfassende Snippets

Berücksichtigen Sie für eine umfassende Lösung die folgenden Snippets für die Bearbeitung von Abfragen mit oder ohne Ergebnis Sätze:

Klassische „IF(){DO{} WHILE}“-Syntax:

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
}
Nach dem Login kopieren

Neu erfundenes Rad „WHILE{}“-Syntax:

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
}
Nach dem Login kopieren

Diese Snippets verarbeiten Abfragen effektiv mit oder ohne Ergebnismengen und bieten eine detaillierte Fehlerbehandlung für Debugging-Zwecke.

Das obige ist der detaillierte Inhalt vonWie behebe ich den „Strenge Standards: Behebung des mysqli_next_result()-Fehlers' mit mysqli_multi_query?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage