Nói chung, các hàm mysql_ * được sử dụng như sau:
$id = 1234;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
// $query is a string with the MySQL query
$resource = mysql_query($query);
// $resource is a *MySQL result resource* - a mere link to the result set
while ($row = mysql_fetch_assoc($resource)) {
// $row is an associative array from the result set
print_r($row);
// do something with $row
}
Nếu bạn truyền một thứ gì đó đến mysql_fetch_assoc không phải là tài nguyên kết quả MySQL (cho dù đó là một chuỗi, một đối tượng hay một boolean), thì hàm sẽ phàn nàn rằng nó không biết phải làm gì với tham số; đó chính xác là những gì bạn đang thấy.
Một gotcha thông thường :bạn nhận được cảnh báo này nếu bạn chuyển thứ gì đó (không phải là chuỗi truy vấn hợp lệ) vào mysql_query
:
$id = null;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
$res = mysql_query($query);
// $res === FALSE because the query was invalid
// ( "SELECT name, genre FROM sometable WHERE id=" is not a valid query )
mysql_fetch_assoc($res);
// Warning: don't know what to do with FALSE, as it's not a MySQL result resource