Solving the mysql_fetch_array() Issue: Fixing the 'Parameter 1 to be Resource, Boolean Given in' Error


This guide will help you understand and resolve the error "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given" commonly encountered while working with MySQL queries in PHP.

## Table of Contents

1. [Understanding the Error](#understanding-the-error)
2. [Common Causes](#common-causes)
3. [Step-by-Step Solution](#step-by-step-solution)
4. [Related Links](#related-links)
5. [FAQs](#faqs)

## Understanding the Error

The `mysql_fetch_array()` function is used in PHP to fetch data from the result set returned by a MySQL query. It takes a resource (result set) as its parameter and returns an array containing the fetched row.

This error occurs when the function is provided with an incorrect parameter, i.e., a boolean value instead of a resource. In most cases, this is because the MySQL query has failed to execute properly, and the function is attempting to fetch data from a non-existent result set.

## Common Causes

1. **Syntax error in the SQL query:** The most common cause of this error is incorrect syntax in the SQL query, which prevents the query from being executed successfully.

2. **Incorrect table or column names:** If the table or column names specified in the query do not exist in the database, the query will fail and return a boolean value.

3. **Failure to connect to the database:** If there is an issue establishing a connection to the database, the query will not be executed, leading to this error.

## Step-by-Step Solution

To resolve this issue, follow these steps:

### Step 1: Enable Error Reporting

To identify the cause of the error, enable error reporting in PHP by adding the following lines at the beginning of your script:

ini_set('display_errors', 1);

This will display detailed error messages, including any issues with the SQL query.

Step 2: Check SQL Query Syntax

Review your SQL query to ensure that it follows the correct syntax. Use an online SQL query validator to check for any syntax issues.

Step 3: Verify Table and Column Names

Ensure that the table and column names specified in your query match the names in your database. Double-check for any typos or case sensitivity issues.

Step 4: Check Database Connection

Make sure that you have successfully connected to the database before executing the query. Verify your database credentials (host, username, password, and database name) and ensure that your connection code is correct. For example:

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

Step 5: Check the Result Set Before Fetching Data

Before using mysql_fetch_array(), check if the result set is valid by adding a conditional statement to your code. For example:

$result = mysql_query($query, $connection);
if ($result) {
    while ($row = mysql_fetch_array($result)) {
        // Process the fetched data
} else {
    echo 'Error in query: ' . mysql_error();

By following these steps, you should be able to identify and resolve the cause of the "Parameter 1 to be resource, boolean given" error.


Why am I getting a boolean value instead of a resource?

When a MySQL query fails to execute, it returns a boolean false value instead of a resource. If this value is passed to mysql_fetch_array(), it will trigger the error.

How can I check if my query is successful or not?

You can check the success of a query by testing the result set in a conditional statement, as shown in Step 5.

Is there an alternative to mysql_fetch_array()?

Yes, you can use mysql_fetch_assoc() or mysql_fetch_row() as alternatives to mysql_fetch_array().

Can I still use mysql_* functions in PHP?

The mysql_* functions are deprecated in PHP 5.5.0 and removed in PHP 7.0.0. It is recommended to use MySQLi or PDO_MySQL instead.

How do I enable error reporting for a specific block of code?

To enable error reporting for a specific block of code, you can use the try-catch statement with a PDOException class. This is especially useful when using PDO_MySQL.

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.