Heim  >  Artikel  >  Datenbank  >  Können Sie mehrere Abfragen in einer einzigen MySQLi-Anweisung ausführen?

Können Sie mehrere Abfragen in einer einzigen MySQLi-Anweisung ausführen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 03:57:29171Durchsuche

Can You Execute Multiple Queries in a Single mysqli Statement?

Mehrere Abfragen in einer einzelnen MySQLi-Anweisung

Können Sie eine einzelne MySQLi-Anweisung vorbereiten, die mehrere Abfragen ausführt?

Frage:

Ist es möglich, eine einzelne MySQLi-Anweisung zu erstellen, die mehrere Abfragen ausführt? Zum Beispiel:

<code class="php">mysqli->prepare("query1 ...1,2,3 param...; query2...4,5 param...");
or 
mysqli->prepare("insert into ...1,2,3 param...; insert into...4,5 param...");</code>

Der Versuch einer solchen Konstruktion führt zu dem Fehler „Aufruf einer Mitgliedsfunktion bind_param() für ein Nicht-Objekt in...“

<code class="php">$stmt = $sql->getQueryPrepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?); INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmt->bind_param("ssssss",$id, $username, $pw, $email, $id, $idp);

$stmt->execute();
$stmt->close(); </code>

Antwort:

Eine vorbereitete Anweisung kann nur eine einzige MySQL-Abfrage ausführen. Sie können jedoch mehrere Anweisungen in separaten Variablen vorbereiten:

<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 (?,?);");</code>

Diese Anweisungen können nachträglich ausgeführt werden. Wenn Sie sicherstellen müssen, dass beide Abfragen erfolgreich ausgeführt werden, sollten Sie die Verwendung von Transaktionen in Betracht ziehen.

Denken Sie daran, dass der Fehler „Aufruf einer Member-Funktion für ein Nicht-Objekt“ normalerweise auf einen Fehler in der Prepare()-Anweisung hinweist und nicht auf einen Fehler Probleme mit nachfolgendem Code.

Das obige ist der detaillierte Inhalt vonKönnen Sie mehrere Abfragen in einer einzigen MySQLi-Anweisung ausführen?. 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