Rumah >pangkalan data >tutorial mysql >Mengapakah kenyataan PDO saya yang disediakan mengembalikan hasil berganda apabila mengambil data ke dalam fail CSV?

Mengapakah kenyataan PDO saya yang disediakan mengembalikan hasil berganda apabila mengambil data ke dalam fail CSV?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 03:57:02547semak imbas

Why is my PDO prepared statement returning double results when fetching data into a CSV file?

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:

  • PDO::FETCH_ASSOC: Mengembalikan tatasusunan bersekutu yang diindeks mengikut nama lajur.
  • PDO::FETCH_NUM: Mengembalikan tatasusunan diindeks yang diindeks mengikut lajur. nombor.
  • PDO::FETCH_BOTH (lalai): Mengembalikan tatasusunan yang diindeks oleh kedua-dua nama lajur dan nombor lajur.

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!

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