Fehler „Befehle nicht synchron“ in MySQLi
In Ihrem Code, der mehrere MySQLi-Abfragen umfasst, tritt der Fehler „Befehle nicht synchron“ auf. Dieser Fehler tritt auf, weil der MySQL-Client die Ausführung neuer Abfragen verbietet, solange noch Zeilen aus einer laufenden Abfrage abgerufen werden müssen.
Verstehen des Problems
Der MySQL-Client implementiert ein strenges Protokoll, das sicherstellt, dass Abfragen der Reihe nach ausgeführt werden. Wenn Sie verschachtelte Abfragen oder Prozeduren haben, die mehrere Ergebnismengen zurückgeben, schreibt das Protokoll vor, dass Sie alle Zeilen aus einer Ergebnismenge abrufen, bevor Sie die nächste Abfrage ausführen. In Ihrem Fall versuchen Sie jedoch, eine neue Abfrage auszuführen, während noch Zeilen aus der vorherigen abzurufen sind.
Lösungen
Es gibt zwei Hauptlösungen Lösungsansätze für das Problem:
Überlegungen zur alternativen Datenspeicherung
Bei hierarchischen Daten sollten Sie eine andere Speicherung in Betracht ziehen, um Abfragen zu vereinfachen. Sie könnten beispielsweise Adjazenzlisten oder verschachtelte Mengenmodelle verwenden.
Zusätzliche Hinweise
In CodeIgnitor 3.0.3 können Sie den Fehler „Befehle nicht synchron“ beheben durch Ändern der _execute()-Methode in system/database/drivers/mysqli/mysqli_driver.php.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Befehle nicht synchron' in MySQLi?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!