Fehler „Befehle nicht synchron“ im PHP-Code mit MySQL-Abfragen
Beim Ausführen eines PHP-Skripts, das mehrere MySQL-Abfragen mit mysqli umfasst, Es kann ein Fehler auftreten: „Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen.“ Dieses Problem tritt auf, wenn nachfolgende Abfragen versucht werden, bevor die Ergebnisse der vorherigen Abfrage abgerufen und verarbeitet oder der Cache des MySQL-Servers mit Abfragebefehlen gelöscht werden.
Der in der Frage bereitgestellte Code führt zwei Abfragen aus: eine zum Zählen von Datensätzen und eine andere um Zeilen basierend auf einer Suchzeichenfolge abzurufen. Bevor jedoch die Ergebnisse der ersten Abfrage abgerufen werden, wird die zweite Abfrage ausgeführt. Dies löst den Fehler „Asynchron“ aus.
Fehlerursachen
Mögliche Lösungen
Beispiel
Hier ist ein Beispiel für die Pufferung der ersten Abfrageergebnisse mit $stmt->store_result():
<?php $con = mysqli_connect("localhost", "user", "password", "db"); $brand ="o"; $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; $con->query("SET NAMES 'utf8'"); if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; }
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP bei MySQL-Abfragen den Fehler „Befehle nicht synchron'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!