Penyata Disediakan PDO fetch() Mengembalikan Keputusan Berganda
Anda bukan satu-satunya pembangun yang mengalami hasil yang tidak dijangka apabila menggunakan pernyataan yang disediakan oleh PDO dengan kaedah fetch(). Untuk menyelesaikan isu ini, anda perlu memahami cara fetch() berkelakuan dengan gaya pengambilan yang berbeza.
Secara lalai, fetch() mengembalikan tatasusunan bersekutu (diindeks mengikut nama lajur) dan tatasusunan angka (diindeks mengikut lajur nombor). Dalam kes anda, ini bermakna setiap lajur daripada setiap baris dalam jadual digemakan dua kali.
Untuk mengelakkan perkara ini, anda harus menentukan gaya pengambilan tertentu apabila memanggil fetch(). Anda boleh melakukan ini dengan menghantar salah satu pemalar PDO::FETCH_* sebagai argumen kedua kepada kaedah fetch().
Associative Array Only:
<code class="php">while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) { // Your code here }</code>
Array Numerik Sahaja:
<code class="php">while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_NUM)) { // Your code here }</code>
Dengan menyatakan gaya pengambilan, anda boleh mengawal cara data dikembalikan daripada fetch() dan menghalang pertindihan yang tidak diingini.
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!