Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `count(*)` MySQLi Mengembalikan 1 Apabila Mengira Baris Jadual?

Mengapakah `count(*)` MySQLi Mengembalikan 1 Apabila Mengira Baris Jadual?

Patricia Arquette
Patricia Arquetteasal
2024-11-07 13:37:03247semak imbas

Why Does MySQLi's `count(*)` Return 1 When Counting Table Rows?

Pengiraan MySQL(*) Tanpa Jangka Mengembalikan 1

Dalam mengira bilangan baris dalam jadual MySQL menggunakan MySQLi, anda mungkin menghadapi fenomena aneh di mana $result-> ;num_rows secara konsisten melaporkan kiraan 1. Mari kita siasat pendekatan yang betul.

Isunya terletak pada cara MySQLi mengendalikan hasil pertanyaan COUNT(*). Tidak seperti hasil pertanyaan biasa, yang mengandungi set baris, COUNT(*) mengembalikan satu baris dengan satu lajur yang mengandungi kiraan.

Untuk mendapatkan semula kiraan ini dengan tepat, anda perlu mengambil satu baris daripada set keputusan. Kod berikut menunjukkan penggunaan yang betul:

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
$count = $row[0];

echo "Count: $count";

Dengan mengambil baris pertama (dan sahaja) dan mengakses lajur pertamanya, anda memperoleh kiraan yang betul. Menggunakan $result->num_rows akan sentiasa mengembalikan 1 kerana ia mewakili bilangan baris dalam set hasil, iaitu 1 untuk COUNT(*) pertanyaan.

Ingat, untuk pertanyaan biasa yang hasilnya mengandungi berbilang baris , menggunakan $result->num_rows adalah sesuai. Walau bagaimanapun, untuk COUNT(*) pertanyaan, sentiasa ikut corak di atas untuk mendapatkan semula kiraan sebenar.

Atas ialah kandungan terperinci Mengapakah `count(*)` MySQLi Mengembalikan 1 Apabila Mengira Baris Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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