MySQL: Fehler „Befehle nicht synchron“
Problem:
Benutzer stoßen auf die Meldung „Befehle Fehler „nicht synchron; Sie können diesen Befehl jetzt nicht ausführen“, wenn Sie versuchen, mehrere MySQL-Abfragen nacheinander auszuführen mysqli.
Ursache:
Dieser Fehler tritt auf, weil mysqli standardmäßig ungepufferte Abfragen für vorbereitete Anweisungen verwendet. Das bedeutet, dass die Ergebnisse der ersten Abfrage abgerufen werden müssen, bevor die nächste ausgeführt wird.
Lösung:
Es gibt zwei Möglichkeiten, dieses Problem zu beheben:
Methode 1: Ergebnisse in ein Array abrufen
Ergebnisse der ersten Abfrage abrufen in ein Array und durchlaufen Sie es. Dieser Ansatz umfasst die folgenden Schritte:
Methode 2: Abfragen puffern
Mysqli zum Puffern konfigurieren die Abfragen mit mysqli_stmt_store_result(). Dieser Ansatz umfasst die folgenden Schritte:
Implementierung:
Um beispielsweise Methode 2 in Ihrem bereitgestellten Code zu implementieren:
... $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results ... } ...
Zusätzlich Hinweise:
Das obige ist der detaillierte Inhalt vonMySQL-Fehler „Befehle nicht synchron': Wie löst man sequentielle Abfrageprobleme mit mysqli?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!