Masalah PDO dengan Penyata Disediakan Mengambil Keputusan Berganda
Apabila menggunakan skrip untuk mengeksport data ke fail CSV, anda mungkin menghadapi isu di mana berbilang salinan data sedang dipaparkan dan bukannya baris tunggal yang dikehendaki. Masalah ini menjadi jelas apabila bekerja dengan kenyataan yang disediakan PDO, dan ia boleh mengelirukan untuk memahami mengapa ia berlaku.
Untuk menyelesaikan isu ini, adalah penting untuk menentukan format yang diingini untuk hasil yang dikembalikan. Secara lalai, PDO menggunakan mod FETCH_BOTH, yang mengembalikan tatasusunan dengan kedua-dua nama lajur dan nombor lajur terindeks 0. Dalam kes anda, anda hanya ingin mendapatkan tatasusunan bersekutu, yang diindeks mengikut nama lajur.
Untuk membetulkan keadaan ini, cuma ubah suai kod anda dengan menyatakan mod pengambilan yang diingini:
while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) { $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n"; }
Sebagai alternatif, jika anda lebih suka tatasusunan yang diindeks secara berangka, anda boleh menggunakan PDO::FETCH_NUM sebaliknya.
Pilihan yang anda pilih akan menentukan format hasil yang dikembalikan, memastikan anda menerima data dalam struktur yang diingini untuk eksport CSV anda.
Atas ialah kandungan terperinci Mengapakah Saya Mendapat Keputusan Berganda Apabila Mengambil dengan Penyata Disediakan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!