Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah COUNT(*) mengembalikan 1 dalam MySQLi apabila jadual mempunyai lebih banyak baris?

Mengapakah COUNT(*) mengembalikan 1 dalam MySQLi apabila jadual mempunyai lebih banyak baris?

Barbara Streisand
Lepaskan: 2024-11-10 08:04:02
asal
303 orang telah melayarinya

Why does COUNT(*) return 1 in MySQLi when the table has more rows?

Salah Kira Fungsi Kira(*) dalam MySQLi

Apabila melaksanakan pertanyaan COUNT(*) dalam MySQLi, pengguna mungkin menghadapi tingkah laku yang tidak dijangka di mana hasilnya secara konsisten mengembalikan 1 tanpa mengira saiz jadual sebenar. Percanggahan antara MySQLi dan phpMyAdmin ini boleh membingungkan.

Penyiasatan dan Penyelesaian

Ketidakpadanan timbul kerana MySQLi mewakili hasil COUNT(*) sebagai set rekod satu baris. Untuk mengakses kiraan sebenar, keputusan mesti diambil menggunakan kaedah fetch_row().

Oleh itu, cara yang betul untuk menentukan kiraan baris menggunakan MySQLi ialah:

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];
Salin selepas log masuk

Dalam pengubahsuaian ini kod, sifat num_rows tidak digunakan kerana hasilnya ialah set rekod satu baris, dan oleh itu, rowCountnya sentiasa 1. Sebaliknya, kaedah fetch_row() digunakan untuk mendapatkan semula kiraan sebenar yang disimpan dalam lajur pertama set rekod.

Atas ialah kandungan terperinci Mengapakah COUNT(*) mengembalikan 1 dalam MySQLi apabila jadual mempunyai lebih banyak baris?. 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