Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit mysqli mehrere INSERT-Anweisungen gleichzeitig in MySQL ausführen?
Mehrere MySQLi-Abfragen: Gleichzeitiges Ausführen von INSERT-Anweisungen
Ursprüngliches Problem:
Ausführungsversuche Zwei INSERT-Anweisungen, die nacheinander mysqli_query() verwenden, führen zum Scheitern der zweiten Abfrage. Dieses Problem ist auf die Sicherheitsmaßnahmen von MySQL zurückzuführen, die verhindern, dass mehrere Abfragen in einem einzigen Aufruf ausgeführt werden.
Lösung: mysqli_multi_query()
Um mehrere Abfragen in einem einzigen Aufruf auszuführen Für den Aufruf muss mysqli_multi_query() verwendet werden. Funktion:
$query = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');"; $query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');"; $result = mysqli_multi_query($mysqli, $query);
Abfrageergebnisse verarbeiten
Das Ausführen von mysqli_multi_query() gibt einen booleschen Wert zurück. Es ist jedoch wichtig, die Ergebnisse jeder Abfrage manuell mit mysqli_store_result() abzurufen und sie mit mysqli_more_results() und mysqli_next_result() zu durchlaufen:
while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)) { if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') { echo "Query failed: " . mysqli_error($mysqli); } }
Vorteile von mysqli_multi_query()
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich mit mysqli mehrere INSERT-Anweisungen gleichzeitig in MySQL ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!