Home > Database > Mysql Tutorial > Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

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

Mary-Kate Olsen
Release: 2024-12-07 19:49:14
Original
694 people have browsed it

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

PHP & MySQL: Resolving "mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given" Error

The error "mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given" indicates that the input provided to the mysqli_num_rows() function is not a valid result set. This error is often encountered when the input argument is not a result of a successful query execution.

In this specific case, the error occurs in the following line of PHP code:

if (mysqli_num_rows($dbc) == 0) {
Copy after login

Here, the variable $dbc is used as the input to mysqli_num_rows(), but it is returning false because the query executed on $dbc contains an error:

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

The error in the query is the missing JOIN keyword between the users and profile tables:

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");
Copy after login

To fix the issue, you should modify the query as follows:

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

By correcting the query, the mysqli_num_rows() function will now receive a valid result set and be able to determine whether the number of rows in the result is zero.

The above is the detailed content of Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template