Penyata Disediakan PDO Ambil () Mengembalikan Keputusan Berganda
Apabila menggunakan pernyataan yang disediakan PDO, hasil yang diperoleh daripada kaedah fetch() kadangkala boleh nampaknya ditiru. Ini berlaku apabila data yang diingini sedang diambil dua kali setiap baris, menghasilkan dua kali ganda bilangan lajur yang dijangkakan dalam output.
Isu ini berlaku apabila mengambil data menggunakan mod PDO::FETCH_BOTH lalai, yang mendapatkan semula keputusan diindeks oleh kedua-dua nama lajur dan nombor lajur. Untuk mengelakkan pertindihan ini, nyatakan gaya pengambilan alternatif, seperti:
Dengan menggunakan salah satu daripada pengambilan ini mod, anda boleh mendapatkan semula bilangan lajur yang betul untuk setiap baris, memastikan bahawa output dipaparkan seperti yang dimaksudkan.
Berikut ialah contoh cara menggunakan PDO::FETCH_ASSOC:
while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) { $csv .= '"' . join('","', str_replace('"', '""', $rows_get_rows)) . "\"\n"; }
Kod ini akan mendapatkan semula data sebagai tatasusunan bersekutu, menghapuskan lajur pendua.
Atas ialah kandungan terperinci Mengapa Penyata Disediakan PDO Saya Mengambil() Mengembalikan Keputusan Berganda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!