Rumah >pangkalan data >tutorial mysql >Mengapakah `mysqli_num_rows()` Mengembalikan Ralat 'boolean given' dalam PHP dan MySQL?
PHP & MySQL: Menyelesaikan Ralat Parameter mysqli_num_rows() dengan mysqli_result
Apabila mengintegrasikan HTML Purifier ke dalam PHP untuk pengesahan data, adalah penting untuk memastikan lulus parameter yang betul untuk mengelakkan ralat biasa seperti "mysqli_num_rows() menjangkakan parameter 1 ialah mysqli_result, boolean diberikan."
Memahami Ralat
Biasanya, ralat ini berlaku apabila fungsi mysqli_num_rows() dipanggil dengan hujah yang salah. Ia menjangkakan objek mysqli_result yang sah sebagai parameter pertamanya. Dalam coretan kod yang diberikan, parameter pertama ialah $dbc, yang perlu merupakan set hasil yang sah daripada pertanyaan MySQL.
Punca Kemungkinan
Penggunaan yang salah atau pertanyaan yang tidak betul boleh menyebabkan nilai boolean (FALSE) dikembalikan dan bukannya objek mysqli_result. Ini boleh berlaku jika:
Menyelesaikan Isu
Dalam kod yang disediakan, isu terletak dalam pertanyaan SQL yang digunakan untuk mendapatkan semula data daripada pangkalan data:
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.* FROM users INNER JOIN contact_info ON contact_info.user_id = users.user_id WHERE users.user_id=3");
Ralat disebabkan oleh peninggalan gabungan dengan profil berbanding pengguna dan contact_info. Pertanyaan yang betul hendaklah:
$dbc = mysqli_query($mysqli,"SELECT u.*, p.* FROM users AS u LEFT JOIN profile AS p ON u.user_id = p.user_id WHERE u.user_id=3");
Dengan membetulkan pertanyaan, pembolehubah $dbc akan mengembalikan objek mysqli_result yang sah, membolehkan anda menggunakan mysqli_num_rows() dengan berkesan:
if (mysqli_num_rows($dbc) == 0) { //...
Atas ialah kandungan terperinci Mengapakah `mysqli_num_rows()` Mengembalikan Ralat 'boolean given' dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!