Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mit mysqli mehrere INSERT-Anweisungen gleichzeitig in MySQL ausführen?

Wie kann ich mit mysqli mehrere INSERT-Anweisungen gleichzeitig in MySQL ausführen?

Barbara Streisand
Freigeben: 2024-12-07 19:50:14
Original
520 Leute haben es durchsucht

How Can I Execute Multiple INSERT Statements Simultaneously in MySQL Using mysqli?

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);
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

Vorteile von mysqli_multi_query()

  • Führt mehrere Abfragen effizient aus ein einzelner Aufruf.
  • Bewahrt die Datenbankintegrität durch Verhinderung von Abfrageinterferenzen.

Zusätzliche Überlegungen

  • mysqli_store_result() kann FALSE zurückgeben für Abfragen ohne Ergebnisse (z. B. INSERT-Anweisungen). Verwenden Sie mysqli_error(), um den Erfolg zu bestätigen.
  • Weitere Informationen finden Sie in der Dokumentation zu mysqli_multi_query(), mysqli_more_results(), mysqli_next_result() und mysqli_store_result().

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage