Heim >Datenbank >MySQL-Tutorial >Kann MySQLi mehrere Abfragen in einer einzigen Anweisung vorbereiten?
Kann MySQLi mehrere Abfragen in einer Anweisung vorbereiten?
Es ist zwar nicht möglich, mehrere Abfragen mit einer einzigen MySQLi-Anweisung vorzubereiten, es gibt jedoch Problemumgehungen um eine ähnliche Funktionalität zu erreichen.
Vorbereitung mehrerer Anweisungen
Versuche, mehrere Abfragen in einer einzigen MySQLi-Anweisung vorzubereiten, führen zu einem Fehler. Alternativ können Sie mehrere vorbereitete Anweisungen erstellen:
<code class="php">$stmt = $mysqli->prepare("SELECT * FROM users"); $stmt2 = $mysqli->prepare("INSERT INTO orders (user_id) VALUES (?)");</code>
Vorbereitete Anweisungen kombinieren
Um mehrere Abfragen kontrolliert auszuführen, können Sie die vorbereiteten Anweisungen mit a kombinieren Transaktion:
<code class="php">mysqli->begin_transaction(); $stmt->execute(); $stmt2->execute(); mysqli->commit(); // Execute transaction</code>
Dadurch wird sichergestellt, dass beide Abfragen erfolgreich ausgeführt werden oder überhaupt nicht.
Fehlerbehandlung
Wenn eine der vorbereiteten Anweisungen vorliegt Wenn während der Ausführung ein Fehler auftritt, wird die Transaktion zurückgesetzt und es werden keine Änderungen vorgenommen. Es ist wichtig, nach der Ausführung einer vorbereiteten Anweisung auf Fehler zu prüfen:
<code class="php">if ($stmt->errno != 0) { echo "Error: " . $stmt->error; }</code>
Zusätzlicher Tipp
Der Fehler „Aufruf einer Member-Funktion für ein Nicht-Objekt“ tritt normalerweise auf Tritt auf, wenn die Methode Prepare() fehlschlägt. Stellen Sie sicher, dass Ihre Abfragezeichenfolge syntaktisch korrekt ist, bevor Sie fortfahren.
Das obige ist der detaillierte Inhalt vonKann MySQLi mehrere Abfragen in einer einzigen Anweisung vorbereiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!