Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Dapatkan Berbilang Set Keputusan daripada Pertanyaan MySQL PDO Tunggal?

Bagaimanakah Saya Boleh Dapatkan Berbilang Set Keputusan daripada Pertanyaan MySQL PDO Tunggal?

Barbara Streisand
Barbara Streisandasal
2024-11-18 09:47:02873semak imbas

How Can I Retrieve Multiple Result Sets from a Single PDO MySQL Query?

Mengambil Berbilang Set Hasil daripada PDO Berbilang Pertanyaan

Pemandu PDO_MYSQLND memperkenalkan sokongan untuk berbilang pertanyaan dalam PHP versi 5.3. Ini membolehkan pengguna melaksanakan berbilang pertanyaan SQL serentak. Walau bagaimanapun, mendapatkan semula semua set hasil daripada pertanyaan ini boleh menjadi mencabar.

Pernyataan Masalah

Pertanyaan "PILIH 1; PILIH 2;" akan melaksanakan kedua-dua pertanyaan, tetapi hanya set hasil pertanyaan pertama dikembalikan. Set hasil kedua nampaknya dibuang.

Penyelesaian

Untuk mendapatkan berbilang set hasil, kaedah PDOStatement::nextRowset mesti digunakan. Kaedah ini memajukan kursor ke permulaan set baris seterusnya. Dengan memanggil nextRowset selepas pertanyaan pertama, pengguna boleh mengakses set hasil pertanyaan kedua.

$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));

Ini akan mengembalikan set keputusan untuk pertanyaan kedua.

Kelebihan dan Kelemahan

Pelaksanaan ini membolehkan untuk mengambil setiap hasil pertanyaan menggunakan gaya FETCH yang berbeza. Walau bagaimanapun, ia boleh menjadi lebih kompleks daripada pelaksanaan yang hanya mengembalikan semua set hasil di bawah satu tatasusunan. Namun begitu, keupayaan untuk mengendalikan berbilang hasil secara fleksibel boleh menjadi berharga dalam sesetengah senario.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Berbilang Set Keputusan daripada Pertanyaan MySQL PDO Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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