Solving the mysql_num_rows() Error: Understanding 'Parameter 1 to be Resource, Boolean Given' Issue

When working with MySQL databases in PHP, you may encounter the error Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given. This error occurs when the mysql_num_rows() function receives an incorrect data type as its parameter. In this guide, we will help you understand the root cause of this error and provide a step-by-step solution to fix it.

Table of Contents

  1. Understanding the Error
  2. Step-by-Step Solution
  3. FAQs
  4. Related Links

Understanding the Error

The mysql_num_rows() function is used to get the number of rows in a result set returned by a SELECT query. It expects a MySQL resource as its parameter, which is usually the result of a successful query execution. The error occurs when the function receives a boolean value (true or false) instead of the expected MySQL resource.

Common causes of this error include:

  • Syntax errors in the SQL query.
  • Incorrect table or column names.
  • Connection issues with the MySQL server.

Step-by-Step Solution

To solve the mysql_num_rows() error, follow these steps:

Step 1: Check the SQL Query

Check your SQL query for any syntax errors. Make sure that the table and column names are correct and that the query is properly formatted.


$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql);

Step 2: Check the MySQL Connection

Ensure that you have a valid connection to the MySQL server. Verify your connection credentials and make sure that the MySQL server is running.


$connection = mysql_connect('localhost', 'username', 'password');
if (!$connection) {
    die('Could not connect to MySQL: ' . mysql_error());

Step 3: Check the Query Execution

Before passing the result to the mysql_num_rows() function, check whether the query was executed successfully. If mysql_query() returns false, it means that there was an error in the query execution.


$result = mysql_query($sql);
if (!$result) {
    die('Error in query execution: ' . mysql_error());

Step 4: Use mysql_num_rows()

Now that you have ensured that the query was executed successfully, you can safely use the mysql_num_rows() function without encountering the error.


$num_rows = mysql_num_rows($result);
echo "Number of rows: $num_rows";

By following these steps, you should be able to resolve the mysql_num_rows() error.


1. What does the 'Parameter 1 to be resource, boolean given' error mean?

This error means that the mysql_num_rows() function expects a MySQL resource as its parameter, but it received a boolean value (true or false) instead.

2. Why does mysql_query() return a boolean value instead of a resource?

mysql_query() returns a boolean value when there is an error in the query execution, such as a syntax error or incorrect table/column names.

3. How can I check if the SQL query has any syntax errors?

You can check your SQL query for syntax errors by using online SQL query validation tools, or by running the query directly in a MySQL client like phpMyAdmin.

4. How do I fix connection issues with the MySQL server?

To fix connection issues, ensure that your connection credentials are correct and that the MySQL server is running. You can also check the server logs for any error messages.

5. Is it a good practice to use the deprecated mysql_* functions in PHP?

No, using the deprecated mysql_* functions is not recommended. It would be best to use the newer mysqli_* functions or the PHP Data Objects (PDO) extension for working with databases in PHP.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.