Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Berbilang Pertanyaan SQL dalam Set Keputusan Tunggal dengan PHP/MySQL?

Bagaimana untuk Melaksanakan Berbilang Pertanyaan SQL dalam Set Keputusan Tunggal dengan PHP/MySQL?

Linda Hamilton
Lepaskan: 2024-11-11 15:37:03
asal
604 orang telah melayarinya

How to Execute Multiple SQL Queries in a Single Result Set with PHP/MySQL?

Melaksanakan Berbilang Pertanyaan dalam PHP/MySQL

Soalan:

Bagaimana saya boleh menggabungkan berbilang Pertanyaan SQL ke dalam set hasil tunggal dalam PHP menggunakan MySQL?

Jawapan:

Untuk melaksanakan berbilang pertanyaan bercantum dalam PHP menggunakan MySQL, ikut langkah berikut:

  1. Buat Pernyataan SQL:
    Sambungkan pertanyaan SQL individu ke dalam rentetan tunggal, dipisahkan dengan koma bertitik (;). Pastikan terdapat dua titik koma pada akhir setiap pertanyaan kecuali yang terakhir.
  2. Sambung ke Pangkalan Data:
    Gunakan fungsi mysqli_connect untuk mewujudkan sambungan pangkalan data.
  3. Sediakan Pertanyaan:
    Gunakan fungsi mysqli_prepare untuk menyediakan pernyataan berbilang pertanyaan.
$query = "SQL STATEMENT 1;;SQL STATEMENT 2;;SQL STATEMENT 3";
Salin selepas log masuk
  1. Jalankan Pertanyaan:
    Gunakan fungsi mysqli_multi_query untuk melaksanakan pernyataan yang disediakan.
if (mysqli_multi_query($link, $query)) {
    do {
        // Store and process results
    } while (mysqli_next_result($link));
}
Salin selepas log masuk
  1. Ambil Hasil:
    Selepas melaksanakan pertanyaan, gunakan mysqli_fetch_array daripada setiap pertanyaan.

Contoh:

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

$query = "CREATE VIEW current_rankings AS SELECT * FROM main_table WHERE date = X;;
CREATE VIEW previous_rankings AS SELECT rank FROM main_table WHERE date = date_sub('X', INTERVAL 1 MONTH);;
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);;
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)) {
                // Process results
            }
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($link));
}
Salin selepas log masuk

Pendekatan Alternatif:

Sebagai alternatif, anda boleh melaksanakan setiap pertanyaan secara berasingan dan proses hasilnya satu demi satu. Pendekatan ini disyorkan jika pertanyaan tidak saling bergantung.

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

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

while($row = mysqli_fetch_array($result2)) {
    // Process results
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Berbilang Pertanyaan SQL dalam Set Keputusan Tunggal dengan PHP/MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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