Vorbereiten mehrerer Abfragen in einer einzigen MySQLi-Anweisung
Es ist nicht möglich, mehrere Abfragen in einer einzigen MySQLi-Anweisung vorzubereiten. Jeder mysqli_prepare()-Aufruf kann nur eine einzige Abfrage vorbereiten.
Alternativer Ansatz zum Ausführen mehrerer Abfragen
Wenn Sie mehrere Abfragen auf einmal ausführen müssen, können Sie eine erstellen und führen Sie für jede Abfrage separate mysqli_prepare()-Anweisungen aus.
<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);"); $stmtUser->bind_param("ssss", $id, $username, $pw, $email); $stmtProc->bind_param("ss", $id, $idp); $stmtUser->execute(); $stmtProc->execute(); $stmtUser->close(); $stmtProc->close();</code>
Verarbeitung Fehler
Der Fehler „Aufruf einer Mitgliedsfunktion für ein Nicht-Objekt“ tritt normalerweise auf, wenn Prepare() fehlschlägt. Dies liegt normalerweise an einem Fehler in der vorbereiteten Anweisung selbst und nicht im nachfolgenden Code.
Transaktionsunterstützung
Wenn Sie sicherstellen möchten, dass mehrere Abfragen zusammen ausgeführt werden oder Überhaupt nicht, MySQLi unterstützt Transaktionen. Sie können die Funktionen mysqli_begin_transaction() und mysqli_commit() verwenden, um Transaktionsgrenzen zu steuern.
Das obige ist der detaillierte Inhalt vonKann ich mehrere Abfragen in einer einzigen MySQLi-Anweisung vorbereiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!