Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP mehrere MySQLi-Abfragen gleichzeitig ausführen?

Wie kann ich in PHP mehrere MySQLi-Abfragen gleichzeitig ausführen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 02:41:14404Durchsuche

How Can I Execute Multiple MySQLi Queries Simultaneously in PHP?

Mehrere MySQLi-Abfragen: Verständnis von mysqli_multi_query()

Mit MySQLi ist die Ausführung mehrerer Abfragen in einer einzigen Anfrage nicht einfach. Versuche, separate mysqli_query()-Aufrufe auszuführen, führen dazu, dass nur die erste Abfrage ausgeführt wird. Um diese Einschränkung zu überwinden, bietet mysqli_multi_query() eine Lösung zum Ausführen mehrerer SQL-Anweisungen auf einmal.

Beispielimplementierung:

Stellen Sie sich das folgende Szenario vor:

mysqli_query($dblink, "INSERT INTO images ...");
mysqli_query($dblink, "INSERT INTO images_history ...");

Um beide Abfragen gleichzeitig auszuführen, verwenden Sie mysqli_multi_query():

$mysqli = new mysqli(...);
$query = "INSERT INTO images ...";
$query .= "INSERT INTO images_history ...";

$result = mysqli_multi_query($mysqli, $query);

if ($result) {
    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);
        }
    }
} else {
    echo "First query failed..." . mysqli_error($mysqli);
}

Wichtige Überlegungen:

  • mysqli_multi_query() erfordert eine Zeichenfolge, die alle durch Semikolons (;) getrennten Abfragen enthält.
  • mysqli_store_result() muss verwendet werden, um die Ergebnisse jeder Abfrage abzurufen. Da INSERT-Abfragen keine Ergebnismengen zurückgeben, überprüfen Sie mysqli_error() auf eine leere Zeichenfolge, um zu bestätigen, dass die Einfügung erfolgreich war.
  • Dieser Ansatz ist sicher, da er SQL-Injections verhindert, die bei der Ausführung mehrerer mysqli_query()-Aufrufe auftreten.

Zusätzlich Ressourcen:

  • [mysqli_multi_query](https://www.php.net/manual/en/mysqli.multi-query.php)
  • [mysqli_more_results]( https://www.php.net/manual/en/mysqli.more-results .php)
  • [mysqli_next_result](https://www.php.net/manual/en/mysqli.next-result.php)
  • [mysqli_store_result](https://www .php.net/manual/en/mysqli.store-result.php)

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP mehrere MySQLi-Abfragen gleichzeitig 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