Lelaran Atas Set Keputusan dalam MySQLi
Apabila bekerja dengan set hasil dalam MySQLi, anda mungkin menghadapi masalah di mana hanya nilai pertama boleh diakses semasa lelaran. Ini biasanya timbul daripada menggunakan fetch_array() dan pemahaman yang tidak betul tentang kelakuannya.
Gelagat Lalai fetch_array()
Secara lalai, fetch_array() mengembalikan tatasusunan dengan kedua-duanya kunci diindeks dan bersekutu, dikenali sebagai MYSQLI_BOTH. Untuk menentukan set hasil dengan hanya kunci diindeks atau bersekutu, gunakan MYSQLI_NUM atau MYSQLI_ASSOC, masing-masing.
Alternatif untuk fetch_array()
Daripada bergantung pada fetch_array(), menganggap lebih cekap dan ringkas alternatif:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; }
while ($row = $output->fetch_array(MYSQLI_NUM)) { echo $row[0]; }
foreach ($output as $row) { echo $row['uid']; }
Menyelesaikan masalah Lelaran
Menggunakan $i untuk menambah melalui kunci diindeks tidak sesuai untuk set hasil dengan kunci bersekutu. Sebagai contoh, set hasil mungkin mempunyai nilai dalam struktur berikut:
[ 0 => [0 => 1, 'uid' => 1], 1 => [0 => 2, 'uid' => 2], 2 => [0 => 3, 'uid' => 3]... ]
Dalam senario ini, $row[1] tidak akan wujud dalam lelaran berikutnya, yang membawa kepada isu.
Atas ialah kandungan terperinci Mengapa Saya Hanya Mengakses Nilai Pertama dalam Set Keputusan MySQLi Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!