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

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

Patricia Arquette
Lepaskan: 2024-11-02 17:49:28
asal
454 orang telah melayarinya

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";
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan