Rumah  >  Artikel  >  pangkalan data  >  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
Linda Hamiltonasal
2024-11-24 04:47:17867semak imbas

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`;

Kami ingin mencipta tatasusunan seperti:

array('first_name' => 'Tom', 'last_name' => 'Jefferson')

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);

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!

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