如何防止此错误:警告:mysql_fetch_assoc()期望参数1是资源,布局在第11行的...中给出

Nau*_*der 7 php mysql warnings

可能重复:
PHP错误:mysql_fetch_array()期望参数1是资源,给定布尔值

我对此错误非常困惑,它显示当我尝试从不存在的DB返回结果时......我尝试mysql_num_rows()但它返回相同的错误但不是mysql_fetch_assoc期望...它说mysql_num_rows()...

我设置error_reporting(0)为避免显示此错误,但我对此解决方案不满意...

tim*_*dev 13

这是正确的做事方式:

<?PHP
$sql = 'some query...';
$result = mysql_query($q);

if (! $result){
   throw new My_Db_Exception('Database error: ' . mysql_error());
}

while($row = mysql_fetch_assoc($result)){
  //handle rows.
}
Run Code Online (Sandbox Code Playgroud)

注意在($结果!)检查 - 如果你的$结果是一个布尔值,它肯定是假的,这意味着出现了一个数据库错误,这意味着你的查询可能是坏的.

  • 我在SO上编写的任何示例代码绝对不是盲目地复制/粘贴到应用程序中.它应该被阅读和理解.然后应将所得知识应用于提问者的特定问题.也就是说,在将来,我不会使用死(甚至抛出)......我只会留下评论,如`//处理错误' (4认同)