Kaedah Pertanyaan MySQL Menghasilkan Kiraan Baris Tidak Dijangka
Apabila cuba mendapatkan semula kiraan baris jadual MySQL menggunakan fungsi COUNT(*) dan kaedah query() objek MySQLi, anda mungkin menemui hasil yang tidak dijangka di mana kiraan baris yang dikembalikan sentiasa 1. Ini boleh berbeza daripada hasil yang betul apabila melaksanakan pertanyaan yang sama menggunakan alat seperti phpMyAdmin.
Pemahaman the Issue
Harta num_rows bagi objek MySQLi_Result mencerminkan bilangan baris dalam set hasil yang dikembalikan oleh pertanyaan yang dilaksanakan. Walau bagaimanapun, apabila menggunakan fungsi COUNT(*), hasilnya ialah satu baris yang mengandungi nilai kiraan dan bukannya berbilang baris seperti dalam hasil pertanyaan biasa.
Pendekatan yang Betul
Untuk mendapatkan nilai kiraan yang betul menggunakan MySQLi, anda perlu mengambil baris hasil tunggal daripada objek MySQLi_Result dan mendapatkan semula nilai kiraan daripada baris tersebut. Ini boleh dicapai menggunakan kaedah fetch_row(), yang mengembalikan tatasusunan nilai lajur daripada baris pertama dalam set hasil.
Berikut ialah contoh yang menunjukkan pendekatan yang betul:
$result = $db->query("SELECT COUNT(*) FROM `table`"); $row = $result->fetch_row(); $count = $row[0]; echo 'Row count: ', $count;
Kod ini mendapatkan semula nilai kiraan daripada baris pertama dan mencetaknya.
Atas ialah kandungan terperinci Mengapa Kaedah `query()` MySQLi Mengembalikan Kiraan Baris Tidak Dijangka Apabila Menggunakan `COUNT(*)`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!