Rumah > pangkalan data > tutorial mysql > Mengapa mysqli_fetch_array() Gagal pada Penggunaan Berulang, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa mysqli_fetch_array() Gagal pada Penggunaan Berulang, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-03 04:33:12
asal
985 orang telah melayarinya

Why Does mysqli_fetch_array() Fail on Repeated Use, and How Can I Fix It?

Menyelesaikan Dilema mysqli_fetch_array()

Percubaan untuk menggunakan mysqli_fetch_array() beberapa kali pada set hasil yang sama boleh menyebabkan data tidak dapat diakses. Ini timbul kerana mysqli_fetch_array() menggunakan hasil secara berperingkat.

Pemisahan Manipulasi Data

Untuk mengelakkan isu ini, asingkan manipulasi data daripada output. Berikut ialah pendekatan yang dipertingkatkan:

1. Pemilihan Data

$db_res = mysqli_query($db_link, $sql);
$data = array();
while ($row = mysqli_fetch_array($db_res, MYSQLI_ASSOC)) {
    $data[] = $row;
}
Salin selepas log masuk

Sebagai alternatif, gunakan fetch_all() dalam PHP 5.3 :

$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);
Salin selepas log masuk

Langkah ini mendapatkan semula set hasil keseluruhan ke dalam tatasusunan, $data.

2. Penggunaan Data

Kini, anda boleh mengulang $data beberapa kali tanpa menjejaskan set hasil.

Baris Atas

foreach ($data as $row) {
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa mysqli_fetch_array() Gagal pada Penggunaan Berulang, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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