Rumah  >  Artikel  >  pangkalan data  >  Mengapakah Saya Mendapat Keputusan Berganda Apabila Mengambil dengan Penyata Disediakan PDO?

Mengapakah Saya Mendapat Keputusan Berganda Apabila Mengambil dengan Penyata Disediakan PDO?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 17:49:28388semak imbas

Why am I Getting Double Results When Fetching with PDO Prepared Statements?

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!

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