Heim > Datenbank > MySQL-Tutorial > Wie führe ich mehrere MySQL-Abfragen effizient in PHP aus?

Wie führe ich mehrere MySQL-Abfragen effizient in PHP aus?

Barbara Streisand
Freigeben: 2024-12-06 07:13:11
Original
614 Leute haben es durchsucht

How to Execute Multiple MySQL Queries Efficiently in PHP?

Mehrere MySQL-Abfragen in PHP

Bei komplexen Datenbankoperationen kann die Ausführung mehrerer Abfragen in einem einzigen PHP-Skript erforderlich sein. So erreichen Sie dies mit PHP und MySQL:

In Ihrem Fall sind beim Versuch, mehrere Abfragen zu einem einzigen Ergebnis zusammenzuführen, Fehler aufgetreten. Um dieses Problem zu lösen, besteht die wichtigste Lösung darin, die Funktion mysqli_multi_query() zu verwenden. Indem Sie Ihre Abfragen verketten und an diese Funktion übergeben, können Sie sie nacheinander ausführen.

Hier ist eine überarbeitete Version Ihres Codes mit mysqli_multi_query():

$link = mysqli_connect("server", "user", "password", "database");

$query = "CREATE VIEW current_rankings AS SELECT * FROM main_table WHERE date = X;";
$query .= "CREATE VIEW previous_rankings AS SELECT rank FROM main_table WHERE date = date_sub('X', INTERVAL 1 MONTH);";
$query .= "CREATE VIEW final_output AS SELECT current_rankings.player, current_rankings.rank AS current_rank, previous_rankings.rank AS prev_rank FROM current_rankings LEFT JOIN previous_rankings ON (current_rankings.player = previous_rankings.player);";
$query .= "SELECT *, @rank_change = prev_rank - current_rank AS rank_change FROM final_output;";

if (mysqli_multi_query($link, $query)) {
    do {
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_array($result)) {
                echo $row['player'] . ' ' . $row['current_rank'] . ' ' . $row['prev_rank'] . ' ' . $row['rank_change'] . '<br>';
            }
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($link));
}
Nach dem Login kopieren

Denken Sie daran, „X“ zu ersetzen. in den Abfragen mit dem entsprechenden Datumsparameter.

Alternative Ansatz

Wenn die sequentielle Ausführung von Abfragen ausreicht, können Sie mehrere mysqli_query()-Aufrufe verwenden, um jede Abfrage einzeln auszuführen. Zum Beispiel:

$query1 = "Create temporary table A select c1 from t1;";
mysqli_query($link, $query1) or die(mysqli_error());

$query2 = "select c1 from A;";
$result2 = mysqli_query($link, $query2) or die(mysqli_error());

while ($row = mysqli_fetch_array($result2)) {
    echo $row['c1'];
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie führe ich mehrere MySQL-Abfragen effizient in PHP aus?. 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