Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melaksanakan dan Menggabungkan Berbilang Pertanyaan MySQL dengan Cekap dalam PHP?

Bagaimanakah Saya Boleh Melaksanakan dan Menggabungkan Berbilang Pertanyaan MySQL dengan Cekap dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-04 09:06:12
asal
518 orang telah melayarinya

How Can I Efficiently Execute and Combine Multiple MySQL Queries in PHP?

Melaksanakan Berbilang Pertanyaan dalam PHP/MySQL

Masalah:

Melaksanakan berbilang pertanyaan bebas dan menggabungkan keputusan menjadi satu hasil yang padu menggunakan PHP dan MySQL boleh menimbulkan a cabaran.

Penyelesaian:

1. mysqli_multi_query()

  • Sambungkan pernyataan SQL dengan koma bertitik (;).
  • Gunakan mysqli_multi_query() untuk melaksanakan berbilang pertanyaan.
  • Simpan keputusan setiap pertanyaan menggunakan mysqli_store_result().
  • Gelung setiap set hasil, ambil data dan lakukan sebarang pemprosesan yang diperlukan.

Contoh:

// establish MySQL connection
$link = mysqli_connect("server", "user", "password", "database");

// define multiple queries
$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 LEFT JOIN previous_rankings.rank as prev_rank ON (current_rankings.player = previous_rankings.player);";
$query .= "SELECT *, @rank_change = prev_rank - current_rank as rank_change from final_output;";

// execute multiple queries
if (mysqli_multi_query($link, $query)) {
    // loop through each result set
    do {
        if ($result = mysqli_store_result($link)) {
            // fetch data from each result set
            while ($row = mysqli_fetch_array($result)) {
                // process the data...
            }
            // free result set memory
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($link));
} else {
    // handle query execution error
}
Salin selepas log masuk

2. Asingkan Pertanyaan

  • Laksanakan setiap pertanyaan secara berasingan menggunakan mysqli_query().
  • Simpan keputusan dalam jadual atau pembolehubah sementara.
  • Gabungkan hasil seperti yang diperlukan untuk selanjutnya pemprosesan.

Contoh:

// establish MySQL connection
$link = mysqli_connect("server", "user", "password", "database");

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

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

// fetch data from second query
while ($row = mysqli_fetch_array($result2)) {
    // process the data...
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan dan Menggabungkan Berbilang Pertanyaan MySQL dengan Cekap dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan