Heim >Datenbank >MySQL-Tutorial >PHP MySQLi „Befehle nicht synchron': Wie kann der Fehler behoben werden?
PHP-Befehle nicht synchron: Lösung des Dilemmas
Beim Arbeiten mit PHP und MySQLi zum Abrufen von Daten aus einer MySQL-Datenbank wird die Ausführung mehrerer vorbereitet Anweisungen können manchmal zu dem Fehler führen: „Befehle sind nicht synchron, Sie können den Befehl nicht ausführen.“ jetzt.“
Ursache und Lösung
Dieser Fehler tritt auf, wenn das Verbindungsobjekt ($mysqli) ausstehende Ergebnisse einer vorherigen Abfrage hat. Um das Problem zu beheben, müssen Sie nach jeder vorbereiteten Anweisung die Funktion next_result() für das Objekt $mysqli aufrufen.
Betrachten Sie dieses Beispiel:
$stmt = $mysqli->prepare("SELECT id, username, password, firstname, lastname, salt FROM members WHERE email = ? LIMIT 1"); $stmt->bind_param('s', $loweredEmail); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($user_id, $username, $db_password, $firstname, $lastname, $salt); $stmt->fetch(); $stmt->free_result(); $stmt->close(); while ($mysqli->more_results()) { $mysqli->next_result(); } $stmt1 = $mysqli->prepare("SELECT privileges FROM delegations WHERE id = ? LIMIT 1"); $stmt1->bind_param('s', $user_id); // This is where the error occurs $stmt1->execute();
In diesem Code wird der Fehler sein Wird beim Ausführen der zweiten Anweisung ($stmt1) ausgelöst. Um das Problem zu beheben, fügen Sie vor der Ausführung von $stmt1 die folgende Zeile hinzu:
$mysqli->next_result();
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonPHP MySQLi „Befehle nicht synchron': Wie kann der Fehler behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!