mysql_fetch_assoc():提供的参数不是有效的MySQL结果资源

时间:2011-04-13 08:30:21

标签: php mysql

  

可能重复:
  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

我真的坚持这个,我得到了这个错误: mysql_fetch_assoc():提供的参数不是“filename”

中的有效MySQL结果资源

以下是代码:

 $sql = "SELECT * FROM $tbl_name WHERE....
 $result=mysql_query($sql);
 $row = mysql_fetch_assoc($result);

奇怪的是,之前我使用了完全相同的代码,并且工作正常

任何想法??

3 个答案:

答案 0 :(得分:4)

这意味着查询失败。通常这是一个SQL语法错误。要找到答案,只需在_fetch_assoc行之前插入:

print mysql_error();

要防止出现错误消息,请像这样构造代码以预先检查$ result:

$sql = "SELECT * FROM $tbl_name WHERE....";

if ($result = mysql_query($sql)) {
    $row = mysql_fetch_assoc($result);         
}
else print mysql_error();

答案 1 :(得分:1)

始终以这种方式运行所有查询

$sql = "SELECT * FROM $tbl_name WHERE....";
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
$row = mysql_fetch_assoc($result);

您将收到错误原因的通知。

从不打印或让die()输出任何错误,因为它存在安全漏洞。

答案 2 :(得分:0)

通常会发生此错误,因为查询中未返回任何数据。通过进入类似PHPMyAdmin的内容确保返回数据,并确保查询返回一些行。你还应该添加

or die(mysql_error());

在查询结束时。