Rumah >pangkalan data >tutorial mysql >Mengapakah `mysqli_num_rows()` Mengembalikan Ralat 'boolean given' dalam PHP dan MySQL?

Mengapakah `mysqli_num_rows()` Mengembalikan Ralat 'boolean given' dalam PHP dan MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 00:17:11204semak imbas

Why Does `mysqli_num_rows()` Return a

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:

  • Sintaks pertanyaan mempunyai ralat.
  • Fungsi mysqli_query() tidak dilaksanakan dengan betul.
  • Pertanyaan mengembalikan set hasil kosong .

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!

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