Fetch only one row in PHP/MySQL

wiredmark picture wiredmark · Dec 9, 2012 · Viewed 98.2k times · Source

Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

simple question here.

I have a SELECT query

SELECT FROM friendzone WHERE ID = '$editID'"

I am sure this is going to give me only one row as result, cause ID's can't be duplicate in my DB.

How can I access the column values?

$row = mysql_fetch_array($query);

I think this is useless since I don't have to make any array.. I have only one row!

If I don't put it into a While cicle, and try to do e.g.

.$row['ID'].

I get:

mysql_fetch_array() expects parameter 1 to be resource, boolean given

Thanks in advance everyone.

Answer

jan267 picture jan267 · Dec 9, 2012

Please, don't use mysql_* functions in new code. They are no longer maintained and the deprecation process has begun on it. See the red box? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.

Try with:

$query = mysql_query("SELECT * FROM friendzone WHERE ID = '$editID'");
$row = mysql_fetch_array($query);

print_r($row);

MySQLi code:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli('host', 'username', 'password', 'database');
$stmt = $conn->prepare("SELECT * FROM friendzone WHERE ID = ?");
$stmt->bind_param("s", $editID);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

print_r($row);