Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich die Fehlermeldung „Befehle nicht synchron', wenn ich mehrere MySQL-Abfragen in PHP ausführe?

Warum erhalte ich die Fehlermeldung „Befehle nicht synchron', wenn ich mehrere MySQL-Abfragen in PHP ausführe?

Susan Sarandon
Freigeben: 2025-01-23 00:51:09
Original
390 Leute haben es durchsucht

Why Am I Getting a

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:

  1. $data = $con->query($countQuery)
  2. $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>
Nach dem Login kopieren

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

Weitere Anweisungen

  • Der Fehler „near '% ? %'“ weist $countQuery darauf hin, dass in der Abfrage ein Syntaxfehler vorliegt. Stellen Sie sicher, dass die Abfrage korrekt erstellt ist.
  • Wenn Sie mehrere Abfragen gleichzeitig ausführen müssen, sollten Sie die Verwendung der 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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage