mysqli_num_rows() Ralat Fungsi dalam PHP dan MySQL: Panduan Terperinci
Isu:
Apabila memanggil fungsi mysqli_num_rows(), ralat "mysqli_num_rows() menjangkakan parameter 1 ialah mysqli_result, boolean diberikan" ditemui. Ralat ini menunjukkan masalah dengan parameter yang dihantar kepada fungsi.
Analisis dan Penyelesaian:
Fungsi mysqli_num_rows() menjangkakan parameter pertama menjadi objek mysqli_result yang sah . Dalam kod yang disediakan, $dbc tersilap digunakan sebagai parameter. Walau bagaimanapun, pemeriksaan kod mendedahkan bahawa $dbc adalah hasil daripada panggilan mysqli_query().
Isu sebenar terletak pada pertanyaan itu sendiri. Pertanyaan cuba melakukan JOIN DALAM antara jadual "pengguna" dan "profil". Walau bagaimanapun, tiada syarat JOIN yang jelas dinyatakan dalam pertanyaan. Ini menyebabkan pertanyaan mengembalikan palsu, yang kemudiannya dihantar ke fungsi mysqli_num_rows() dan mencetuskan ralat.
Untuk menyelesaikan isu ini, anda perlu menentukan syarat JOIN yang sah dalam pertanyaan. Dalam kes ini, anda mungkin harus MENYERTAI "pengguna" dan "profil" pada medan user_id mereka. Setelah pertanyaan diperbetulkan, ia harus mengembalikan objek mysqli_result yang sah, yang kemudiannya boleh dihantar ke fungsi mysqli_num_rows().
Pertanyaan Dibetulkan:
$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 pelarasan ini, pertanyaan harus dilaksanakan dengan jayanya, mengembalikan objek mysqli_result yang boleh digunakan oleh fungsi mysqli_num_rows() tanpa mencetuskan ralat.
Atas ialah kandungan terperinci Mengapakah mysqli_num_rows() Mengembalikan \'menjangkakan parameter 1 sebagai mysqli_result, boolean diberikan\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!