Question
I am trying to select data from a MySQL table, but I get one of the following error messages:
mysql_fetch_array() expects parameter 1 to be resource, boolean given
This is my code:
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
while($row = mysql_fetch_array($result)) {
echo $row['FirstName'];
}
Answer
A query may fail for various reasons in which case both the mysql_* and the
mysqli extension will return false
from their respective query
functions/methods. You need to test for that error condition and handle it
accordingly.
NOTE The [mysql_ functions are deprecated](https://stackoverflow.com/questions/12859942/why-shouldnt-i-use- mysql-functions-in-php) and have been removed in php version 7.
Check $result
before passing it to mysql_fetch_array
. You'll find that
it's false
because the query failed. See the [mysql_query
][1]
documentation for possible return values and suggestions for how to deal with
them.
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");
if($result === FALSE) {
trigger_error(mysql_error(), E_USER_ERROR);
}
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}