Cara Mengakses Keputusan dalam Set Keputusan MySQLi
Pertanyaan anda:
select uid from userbase
Gelung anda:
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array()) { $deviceToken = $row[$i]; echo $deviceToken; $i++; }
The Isu
Anda hanya memperoleh nilai pertama kerana fetch_array() mendapatkan semula satu baris daripada set hasil dan anda menggunakan indeks $i untuk mengakses elemen dalam baris itu. Walau bagaimanapun, setiap baris berikutnya akan mempunyai indeks yang berbeza, yang membawa kepada keputusan yang salah.
Penyelesaian
Terdapat beberapa penyelesaian untuk diulang ke atas set hasil:
Ambil Satu oleh Satu:
Gunakan fetch_array() untuk mengambil satu baris pada satu masa, melaraskan indeks dengan sewajarnya:
while ($row = $output->fetch_array()) { echo $row['uid']; }
Gunakan Pengulang MySQLI:
Kaedah query() MySQL boleh digunakan sebagai objek boleh lelar, membolehkan anda mengulangi keputusan seperti berikut:
foreach ($output as $row) { echo $row['uid']; }
Nota:
Anda boleh menggunakan sama ada MYSQLI_ASSOC untuk mendapatkan bersekutu tatasusunan atau MYSQLI_NUM untuk mendapatkan tatasusunan diindeks sebagai hasilnya ditetapkan.
Amalan Terbaik
Menggunakan sintaks berorientasikan objek MySQLi adalah disyorkan, kerana ia menyelaraskan kod. Selain itu, adalah penting untuk mempertimbangkan indeks baris dalam lelaran anda untuk mengakses nilai dengan betul.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses semua keputusan dalam set hasil MySQLi dan bukannya yang pertama sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!