Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana dengan Cekap Menukarkan Hasil Pangkalan Data Menjadi Tatasusunan Bersekutu Menggunakan PDO?

Bagaimana dengan Cekap Menukarkan Hasil Pangkalan Data Menjadi Tatasusunan Bersekutu Menggunakan PDO?

Susan Sarandon
Susan Sarandonasal
2024-10-22 20:04:02268semak imbas

How to Efficiently Convert a Database Result Into an Associative Array Using PDO?

Menukar Set Keputusan kepada Tatasusunan Bersekutu Menggunakan Pasangan Nilai Kunci dengan PDO

Apabila bekerja dengan pertanyaan yang mengembalikan pasangan nilai kunci, seperti:

<code class="sql">SELECT `key`, `value` FROM `settings`;</code>

Anda mungkin menginginkan tatasusunan bersekutu di mana kunci dan nilai sepadan dengan data yang dikembalikan. Biasanya, ini dicapai melalui proses yang melibatkan:

<code class="php">$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'];
}</code>

Walaupun kaedah ini biasa, ia memerlukan berbilang lelaran dan potensi isu prestasi. Walau bagaimanapun, terdapat penyelesaian alternatif yang tersedia:

<code class="php">$q = $db->query("SELECT `name`, `value` FROM `settings`;");
$r  = $q->fetchAll(PDO::FETCH_KEY_PAIR);</code>

Pemalar PDO::FETCH_KEY_PAIR membolehkan anda mendapatkan semula data sebagai tatasusunan bersekutu terus daripada pertanyaan, memudahkan proses dan berpotensi meningkatkan prestasi pada set hasil yang lebih besar.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukarkan Hasil Pangkalan Data Menjadi Tatasusunan Bersekutu Menggunakan PDO?. 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