Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich die Fehlermeldung „Befehle nicht synchron' in meinem MySQLi-PHP-Code?

Warum erhalte ich die Fehlermeldung „Befehle nicht synchron' in meinem MySQLi-PHP-Code?

DDD
Freigeben: 2025-01-23 00:57:12
Original
144 Leute haben es durchsucht

Why Am I Getting the

PHP-MySQL-Fehler: Befehl nicht synchron

Ihr PHP-Code versucht, zwei MySQL-Abfragen mit mysqli auszuführen, es tritt jedoch der Fehler „Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen“ auf. Dies wird durch von MySQL vorbereitete Anweisungsabfragen verursacht, die sich standardmäßig im nicht gepufferten Modus befinden.

Fehlerquelle

mysqli führt Abfragen standardmäßig im ungepufferten Modus aus, was bedeutet, dass die Ergebnismenge nicht im Speicher gespeichert, sondern direkt an den Client gestreamt wird. Da Sie zwei Abfragen verwendet haben, wird die erste Abfrage ausgeführt und die Ergebnismenge gestreamt. Bevor Sie jedoch die Ergebnisse der ersten Abfrage erhalten, versuchen Sie, die zweite Abfrage auszuführen. Dies führt zu einem „Befehl nicht synchron“-Fehler, da MySQL verlangt, dass Sie die Ergebnisse der ersten Abfrage abrufen, bevor Sie die zweite Abfrage ausführen.

Lösung: Gepufferte Abfrage

Um dieses Problem zu lösen, müssen Sie die Abfrage puffern. Sie können die Methode store_result() des vorbereiteten Anweisungsobjekts verwenden:

<code class="language-php">$numRecords->execute();
$numRecords->store_result();</code>
Nach dem Login kopieren

Durch die Pufferung von Abfragen speichert MySQL die Ergebnismenge der ersten Abfrage im Speicher, sodass Sie sie später abrufen können, ohne dass es zu Konflikten mit der Ausführung der zweiten Abfrage kommt.

Weitere Hinweise

In Ihrem Code versuchen Sie auch, verschiedene Abfragen innerhalb einer foreach-Schleife auszuführen:

<code class="language-php">$result = $con->query($recordsQuery);
$rows = array();
while($row = $result->fetch_assoc()) {
    $rows[] = $row;
}</code>
Nach dem Login kopieren

Dies ist eigentlich nicht notwendig, da Sie die Ergebnisse der Abfrage bereits in einer Variablen namens $rows speichern. Sie können diese Variable direkt in der Schleife verwenden, um auf die abgerufenen Zeilen zuzugreifen.

Durch die Implementierung dieser Änderungen sollten Sie in der Lage sein, MySQL-Abfragen auszuführen, ohne dass Fehler „Befehl nicht synchron“ auftreten.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Befehle nicht synchron' in meinem MySQLi-PHP-Code?. 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