Fehler „Befehl nicht synchron“ in PHP
Beim Ausführen mehrerer MySQL-Abfragen mit mysqli kann der Fehler „Befehl nicht synchron; Sie können diesen Befehl jetzt nicht ausführen“ auftreten. Dieser Fehler tritt auf, weil mysqli standardmäßig nicht gepufferte Abfragen verwendet, was bedeutet, dass die Ergebnisse der ersten Abfrage abgerufen werden müssen, bevor nachfolgende Abfragen ausgeführt werden.
Fehlergrund
Im bereitgestellten PHP-Code werden zwei MySQL-Abfragen ausgeführt:
$data = $con->query($countQuery)
$rows = getRowsByArticleSearch("test", "Auctions", " ")
Dieser Fehler wird höchstwahrscheinlich ausgelöst, wenn eine zweite Abfrage ausgeführt wird, bevor die Ergebnisse der ersten Abfrage abgerufen werden.
Lösung
Es gibt zwei Möglichkeiten, dieses Problem zu lösen:
1. Holen Sie sich die Ergebnisse der ersten Abfrage
Verwenden Sie die Methode mysqli_fetch_*()
, um die Ergebnisse der ersten Abfrage abzurufen, bevor Sie die zweite Abfrage ausführen. Zum Beispiel:
<code class="language-php">$data = $con->query($countQuery); $rowcount = $data->num_rows;</code>
2. Gepufferte Abfrage
Verwenden Sie mysqli_stmt::store_result()
, um die Abfragepufferung zu aktivieren. Dies führt dazu, dass MySQL die Ergebnisse der ersten Abfrage speichert, bevor die zweite Abfrage ausgeführt wird.
<code class="language-php">$numRecords->store_result();</code>
Weitere Anweisungen
$countQuery
darauf hin, dass in der Abfrage ein Syntaxfehler vorliegt. Stellen Sie sicher, dass die Abfrage korrekt erstellt ist. mysqli::multi_query()
-Methode in Betracht ziehen. Diese Methode übernimmt die Pufferung und Synchronisierung automatisch. Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Befehle nicht synchron', wenn ich mehrere MySQL-Abfragen in PHP ausführe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!