Pernyataan Disediakan PDO Mengambil Keputusan Berganda
Seorang pengguna telah menghadapi isu di mana pernyataan yang disediakan PDO mereka mengembalikan hasil dua kali apabila mengeluarkan data kepada fail CSV. Kod yang dimaksudkan menggunakan fungsi $result_get_rows->fetch() untuk mendapatkan semula baris daripada pangkalan data.
Memahami Kaedah Fetch()
Fetch( ) kaedah objek PDOStatement digunakan untuk mendapatkan semula baris daripada set hasil. Secara lalai, ia mengembalikan baris sebagai tatasusunan diindeks (mengikut nombor lajur) dan tatasusunan bersekutu (mengikut nama lajur).
Menyelesaikan Isu
Untuk membetulkan hasil berganda , adalah disyorkan untuk menentukan cara baris hasil harus dikembalikan menggunakan parameter fetch_style kaedah fetch(). Parameter ini menerima salah satu daripada pemalar berikut:
Kod Diubah Suai
Dengan menggunakan PDO::FETCH_ASSOC, kod boleh diubah suai seperti berikut:
<code class="php">while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) { $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n"; }</code>
Pengubahsuaian ini akan memastikan bahawa baris dikembalikan sebagai tatasusunan bersekutu, dengan berkesan menghalang pertindihan nilai apabila mengeluarkan ke fail CSV .
Atas ialah kandungan terperinci Mengapakah kenyataan PDO saya yang disediakan mengembalikan hasil berganda apabila mengambil data ke dalam fail CSV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!