Rumah > pangkalan data > tutorial mysql > Bagaimanakah kaedah `fetchAll` PDO boleh mencipta tatasusunan bersekutu daripada pasangan nilai kunci yang diambil daripada pangkalan data?

Bagaimanakah kaedah `fetchAll` PDO boleh mencipta tatasusunan bersekutu daripada pasangan nilai kunci yang diambil daripada pangkalan data?

Linda Hamilton
Lepaskan: 2024-11-24 04:47:17
asal
915 orang telah melayarinya

How can PDO's `fetchAll` method create an associative array from key-value pairs retrieved from a database?

PDO FetchAll: Mengumpulkan Pasangan Nilai Kunci ke dalam Tatasusunan Bersekutu

Soalan:

Apabila mendapatkan semula pasangan nilai kunci daripada pangkalan data, bagaimana kita boleh mendapatkan tatasusunan bersekutu dengan nilai yang dikumpulkan mengikut kekunci menggunakan Kaedah fetchAll PDO?

Sebagai contoh, diberikan pertanyaan:

SELECT `key`, `value` FROM `settings`;
Salin selepas log masuk

Kami ingin mencipta tatasusunan seperti:

array('first_name' => 'Tom', 'last_name' => 'Jefferson')
Salin selepas log masuk

Jawapan:

PDO menawarkan penyelesaian yang mudah dan cekap untuk this:

$q = $db->query("SELECT `key`, `value` FROM `settings`;");
$r = $q->fetchAll(PDO::FETCH_KEY_PAIR);
Salin selepas log masuk

Pendekatan ini:

  • Melaksanakan pertanyaan dan mendapatkan semula semua baris ke dalam objek $q PDOStatement.
  • Meminta fetchAll() dengan PDO: :FETCH_KEY_PAIR untuk mengumpulkan hasil mengikut lajur pertama (kunci) dan menetapkan lajur kedua (nilai) sebagai nilai yang sepadan.
  • Menyimpan tatasusunan bersekutu dalam pembolehubah $r.

Kaedah ini dioptimumkan untuk kes penggunaan khusus ini, kerana ia mendapatkan semula data dengan satu pertanyaan dan terus ke dalam format tatasusunan bersekutu yang dikehendaki.

Untuk PostgreSQL 9.1 dan PHP 5.3.8 yang dijalankan pada Windows 7 x64, penyelesaian ini telah disahkan untuk berfungsi dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah kaedah `fetchAll` PDO boleh mencipta tatasusunan bersekutu daripada pasangan nilai kunci yang diambil daripada pangkalan data?. 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