Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich den Fehler „Strikte Standards: mysqli_next_result() mit mysqli_multi_query'?

Wie behebe ich den Fehler „Strikte Standards: mysqli_next_result() mit mysqli_multi_query'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 05:41:17671Durchsuche

How to Resolve

Strenge Standards: Behebung des „mysqli_next_result()-Fehlers mit mysqli_multi_query“

Problem:

Bei der Verwendung von mysqli_multi_query können Benutzer möglicherweise stoßen Sie auf einen „Strenge Standards“-Fehler im Zusammenhang mit mysqli_next_result(). Dieser Fehler weist darauf hin, dass kein nächster Ergebnissatz zum Verarbeiten vorhanden ist.

Erste Antwort:

In einer Antwort wurde versucht, das Problem durch Ändern des $querystring zu beheben, wurde jedoch nicht behoben die Hauptursache des Strict Standards-Fehlers. In einer anderen Antwort wurde empfohlen, die Schleifenstruktur von „DO WHILE“ in „WHILE“ zu ändern, was unnötig ist.

Tatsächliche Lösung:

Um den Fehler zu beheben, ändern Sie den Code wie folgt:

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

Dadurch wird sichergestellt, dass die Bedingung der Schleife nur dann erfüllt wird, wenn mehr Ergebnismengen verarbeitet werden müssen, wodurch das verhindert wird Fehler.

Zusätzliche Überlegungen:

  • Im bereitgestellten Beispiel werden INSERT-Abfragen ausgeführt, die keine Ergebnismengen erzeugen. Daher wird die Schleife in diesem Fall nicht ausgeführt. Erwägen Sie stattdessen die Verwendung von mysqli_affected_rows(), um die Anzahl der betroffenen Zeilen abzurufen.
  • Für eine vollständige Lösung ist es ratsam, eine Fehlerbehandlung einzubeziehen, um etwaige Fehler anzuzeigen.

Verbessert Snippet:

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

Fazit:

Der Fehler „Strict Standards: mysqli_next_result(): There is no next result set“ wird durch die Verwendung von mysqli_more_results behoben (), um zu prüfen, ob zusätzliche Ergebnismengen vorhanden sind. Das erweiterte Snippet verarbeitet sowohl positive als auch negative Ergebnisse der Vorgänge mysqli_multi_query und mysqli_store_result.

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

Stellungnahme:
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