MySQL-Abfragevorbereitung mit mehreren Abfragen
Die Vorbereitung mehrerer Abfragen wird von der vorbereiteten Anweisungsfunktion von MySQL nicht unterstützt. Eine vorbereitete Anweisung in MySQL ist auf die Ausführung einer einzelnen MySQL-Abfrage beschränkt.
Alternativer Ansatz:
Wenn Sie mehrere Abfragen nacheinander ausführen müssen, können Sie separate vorbereitete Anweisungen erstellen Anweisungen für jede Abfrage:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?)");
Transaktionsbasiert Ansatz:
Alternativ können Sie Transaktionen verwenden, um sicherzustellen, dass entweder beide Abfragen oder keine ausgeführt werden:
$sql->begin_transaction(); // Execute both queries if (!$stmtUser->execute() || !$stmtProc->execute()) { $sql->rollback(); } else { $sql->commit(); }
Fehler-Debugging:
Wenn Sie auf den Fehler „Aufruf einer Member-Funktion für ein Nicht-Objekt“ stoßen, weist dies darauf hin, dass die Vorbereitung der Anweisung fehlgeschlagen ist. Überprüfen Sie Ihre Prepare()-Anweisung sorgfältig auf etwaige Fehler.
Das obige ist der detaillierte Inhalt vonKönnen vorbereitete MySQLi-Anweisungen mehrere Abfragen verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!