Heim >Datenbank >MySQL-Tutorial >Kann MySQLi mehrere Abfragen in einer einzigen Anweisung vorbereiten?

Kann MySQLi mehrere Abfragen in einer einzigen Anweisung vorbereiten?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 02:41:30405Durchsuche

Can MySQLi Prepare Multiple Queries in a Single Statement?

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!

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