Heim  >  Artikel  >  Datenbank  >  Kann ich mehrere Abfragen in einer einzigen MySQLi-Anweisung vorbereiten?

Kann ich mehrere Abfragen in einer einzigen MySQLi-Anweisung vorbereiten?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 08:55:29890Durchsuche

Can I Prepare Multiple Queries in a Single MySQLi Statement?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn