Rumah >pangkalan data >tutorial mysql >Mengapakah `mysqli_num_rows()` mengembalikan 'menjangka parameter 1 menjadi mysqli_result, boolean diberikan'?
mysqli_num_rows() menjangkakan parameter 1 ialah mysqli_result, boolean diberikan
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).
Dalam kod yang disediakan, ralat berlaku pada baris 22:
if (mysqli_num_rows($dbc) == 0) {
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).
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!