Troubleshooting Guide: Fixing 'mysql_fetch_array() expects parameter 1 to be resource' Error

If you've been working with PHP and MySQL, you may have come across the error message "mysql_fetch_array() expects parameter 1 to be resource" at some point. Don't worry, it's a common error and can be resolved with a few simple steps. In this guide, we'll go over what causes this error and how to fix it.

What Causes the Error?

This error occurs when the mysql_query() function fails to execute a query properly. The mysql_query() function returns false if the query fails, and this value is passed to the mysql_fetch_array() function as a parameter instead of the expected resource.

How to Fix the Error

To fix the error, you need to make sure that the mysql_query() function is executed properly and returns a valid resource. Here are some steps to follow:

Check the SQL Query - Make sure that the SQL query you're trying to execute is valid and doesn't contain any syntax errors. You can use a tool like phpMyAdmin to test your query and make sure it works.

Check the MySQL Connection - Make sure that you've established a valid MySQL connection before executing the query. You can use the mysql_connect() function to establish a connection, and the mysql_select_db() function to select the database you want to work with.

Check the mysql_query() Function - Make sure that the mysql_query() function is executed properly and returns a valid resource. You can use the mysql_error() function to check for any errors that might have occurred during the execution of the query.

Here's an example code snippet that demonstrates how to fix the error:

$link = mysql_connect('localhost', 'user', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());

$db_selected = mysql_select_db('database_name', $link);
if (!$db_selected) {
    die ('Can\'t use database_name: ' . mysql_error());

$result = mysql_query('SELECT * FROM table_name', $link);
if (!$result) {
    die('Invalid query: ' . mysql_error());

while ($row = mysql_fetch_array($result)) {
    // Do something with the row data



Q1: What is the mysql_fetch_array() function?

A1: The mysql_fetch_array() function is a PHP function that fetches a row from a MySQL database and returns it as an array.

Q2: What is the mysql_query() function?

A2: The mysql_query() function is a PHP function that executes a MySQL query.

Q3: What is the mysql_connect() function?

A3: The mysql_connect() function is a PHP function that establishes a connection to a MySQL database.

Q4: What is the mysql_select_db() function?

A4: The mysql_select_db() function is a PHP function that selects a MySQL database to work with.

Q5: What is the mysql_error() function?

A5: The mysql_error() function is a PHP function that returns the error message from the last MySQL operation.

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.