Rumah > pangkalan data > tutorial mysql > Mengapa Penyata Disediakan PDO Saya Mengambil() Mengembalikan Keputusan Berganda?

Mengapa Penyata Disediakan PDO Saya Mengambil() Mengembalikan Keputusan Berganda?

Barbara Streisand
Lepaskan: 2024-11-03 02:43:30
asal
672 orang telah melayarinya

Why Does My PDO Prepared Statement Fetch() Return Double Results?

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:

  • PDO::FETCH_ASSOC: Mengembalikan tatasusunan yang diindeks mengikut nama lajur, mengelakkan pertindihan yang disebabkan oleh nombor lajur indeks.
  • PDO::FETCH_NUM: Mengembalikan tatasusunan yang diindeks mengikut nombor lajur, menghapuskan keperluan untuk pengindeksan nama lajur.

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

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!

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