Rumah > pangkalan data > tutorial mysql > Mengapakah `mysqli_num_rows()` Mengembalikan Boolean Daripada Set Hasil?

Mengapakah `mysqli_num_rows()` Mengembalikan Boolean Daripada Set Hasil?

Mary-Kate Olsen
Lepaskan: 2024-12-07 19:49:14
asal
694 orang telah melayarinya

Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

PHP & MySQL: Menyelesaikan "mysqli_num_rows() menjangkakan parameter 1 menjadi mysqli_result, boolean diberi" Ralat

Ralat "mysqli_num_rows() menjangkakan parameter 1 ialah mysqli_result, boolean diberikan" menunjukkan bahawa input yang diberikan kepada fungsi mysqli_num_rows() bukan set hasil yang sah. Ralat ini sering ditemui apabila argumen input bukan hasil daripada pelaksanaan pertanyaan yang berjaya.

Dalam kes khusus ini, ralat berlaku dalam baris kod PHP berikut:

if (mysqli_num_rows($dbc) == 0) {
Salin selepas log masuk

Di sini, pembolehubah $dbc digunakan sebagai input kepada mysqli_num_rows(), tetapi ia mengembalikan palsu kerana pertanyaan yang dilaksanakan pada $dbc mengandungi 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");
Salin selepas log masuk

Ralat dalam pertanyaan ialah kata kunci JOIN yang hilang antara pengguna dan jadual profil:

SELECT users.*, profile.* --You do not join with profile anywhere.
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");
Salin selepas log masuk

Untuk membetulkan isu, anda harus mengubah suai pertanyaan seperti berikut:

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

Dengan membetulkan pertanyaan, fungsi mysqli_num_rows() kini akan menerima set hasil yang sah dan boleh untuk menentukan sama ada bilangan baris dalam keputusan adalah sifar.

Atas ialah kandungan terperinci Mengapakah `mysqli_num_rows()` Mengembalikan Boolean Daripada Set Hasil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan