Rumah >pangkalan data >tutorial mysql >Mengapakah `mysqli_num_rows()` mengembalikan 'menjangka parameter 1 menjadi mysqli_result, boolean diberikan'?

Mengapakah `mysqli_num_rows()` mengembalikan 'menjangka parameter 1 menjadi mysqli_result, boolean diberikan'?

DDD
DDDasal
2024-12-08 18:00:34570semak imbas

Why does `mysqli_num_rows()` return

mysqli_num_rows() menjangkakan parameter 1 ialah mysqli_result, boolean diberikan

Analisis Ralat

Mesej ralat "mysqli_num_row ) menjangkakan parameter 1 menjadi mysqli_result, boolean given" timbul apabila cuba menggunakan fungsi mysqli_num_rows() pada nilai boolean dan bukannya set hasil MySQL yang sah (mysqli_result).

Sumber Ralat

Dalam kod yang disediakan, ralat berlaku pada baris 22:

if (mysqli_num_rows($dbc) == 0) {

Menyahpepijat Isu

Pembolehubah $dbc diberikan pada baris 13 menggunakan fungsi mysqli_query(). Walau bagaimanapun, pemeriksaan pertanyaan mendedahkan ralat:

$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");

Pertanyaan cuba untuk menyertai jadual "pengguna" dan "profil" menggunakan "SERTAI DALAM", tetapi tiada syarat gabungan antara "profil" dan mana-mana meja lain. Akibatnya, pertanyaan mengembalikan palsu (boolean false).

Resolusi

Untuk menyelesaikan ralat, pertanyaan mesti dibetulkan untuk memasukkan syarat cantum yang betul. Berikut ialah pertanyaan yang diperbetulkan:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN profile 
                                 ON users.user_id = profile.user_id
                                 WHERE users.user_id=3");

Dengan pembetulan ini, pertanyaan akan mengembalikan set hasil MySQL yang sah, membolehkan mysqli_num_rows() beroperasi dengan betul.

Atas ialah kandungan terperinci Mengapakah `mysqli_num_rows()` mengembalikan 'menjangka parameter 1 menjadi mysqli_result, boolean diberikan'?. 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