Mengapa Saya Hanya Mengakses Nilai Pertama dalam Set Keputusan MySQLi Saya?

Susan Sarandon
Lepaskan: 2024-11-19 11:33:02
asal
797 orang telah melayarinya

Why Am I Only Accessing the First Value in My MySQLi Result Set?

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:

  • Associative Arrays (MYSQLI_ASSOC): Akses nilai menggunakan nama lajur sebagai kunci:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) {
    echo $row['uid'];
}
Salin selepas log masuk
  • Tatasusunan Berindeks (MYSQLI_NUM): Akses nilai dengan indeks:
while ($row = $output->fetch_array(MYSQLI_NUM)) {
    echo $row[0];
}
Salin selepas log masuk
  • Lelaran Berorientasikan Objek: Lelaran ke atas set hasil sebagai objek boleh lelaran, mengetepikan keperluan untuk fetch_array():
foreach ($output as $row) {
    echo $row['uid'];
}
Salin selepas log masuk

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]...
]
Salin selepas log masuk

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!

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