Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengambil Pasangan Nilai Kunci dengan Cekap daripada Pertanyaan PDO sebagai Tatasusunan Bersekutu?

Bagaimanakah Saya Boleh Mengambil Pasangan Nilai Kunci dengan Cekap daripada Pertanyaan PDO sebagai Tatasusunan Bersekutu?

DDD
Lepaskan: 2024-11-24 18:06:19
asal
580 orang telah melayarinya

How Can I Efficiently Fetch Key-Value Pairs from a PDO Query as an Associative Array?

PDO FetchAll Group Key-Value Pairs into Associative Array

Apabila bekerja dengan pertanyaan yang mengembalikan pasangan nilai kunci, selalunya wajar untuk mendapatkan semula keputusan sebagai tatasusunan bersekutu. Pertimbangkan pertanyaan berikut:

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

Matlamatnya adalah untuk mendapatkan tatasusunan bersekutu di mana kunci sepadan dengan lajur kunci dan nilai sepadan dengan lajur nilai.

Pendekatan tradisional melibatkan pengambilan keputusan menggunakan PDO::FETCH_ASSOC dan kemudian mencipta tatasusunan bersekutu secara manual menggunakan a gelung:

$settings_flat = $db
    ->query("SELECT `name`, `value` FROM `settings`;")
    ->fetchAll(PDO::FETCH_ASSOC);

$settings = array();

foreach ($settings_flat as $setting) {
    $settings[$setting['name']] = $setting['value'];
}
Salin selepas log masuk

Walau bagaimanapun, terdapat cara yang lebih cekap untuk mencapai hasil yang sama menggunakan PDO::FETCH_KEY_PAIR:

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

Kaedah ini secara langsung mengembalikan tatasusunan bersekutu di mana kekunci sepadan kepada lajur utama dan nilai sepadan dengan lajur nilai.

Pendekatan ini bukan sahaja lebih ringkas, tetapi ia juga mengelakkan gelung dan penciptaan tatasusunan yang tidak perlu. Ia merupakan penyelesaian yang mudah dan cekap untuk menukar hasil pasangan nilai kunci kepada tatasusunan bersekutu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil Pasangan Nilai Kunci dengan Cekap daripada Pertanyaan PDO sebagai Tatasusunan Bersekutu?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan