mysql_num_rows()给出一个BOOL值

时间:2012-02-04 18:59:16

标签: php mysql warnings mysql-num-rows

我的PHP中有这个查询:

<?php
$comments_list = mysql_query("SELECT * FROM comments ORDER BY `date` DESC, `time` DESC LIMIT 5");
echo mysql_error();
if (mysql_num_rows($comments_list) != 0)
{
    echo('<ul>');
    while ($comment = mysql_fetch_array($comments_list))
    {
        echo('<li>'.substr($comment['content'],0,70).'</li>');
    }
    echo('</ul>');
}
else
{
    echo('<center>No comment.</center>');
}
?>

如果我的表为空,它会出现此错误:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\admin\index.php on line 101

编辑:我在LIMIT 5之前查询ORDER BY。现在它已修复,我添加了问题中编辑的echo mysql_error()

2 个答案:

答案 0 :(得分:2)

您没有在查询中执行任何错误检查。在mysql_query()调用后,您需要执行此操作,因为在查询错误it will return boolean false上,您的脚本将完全按照您显示的方式中断。

为您的查询添加错误检查。 manual on mysql_query()或此reference question.

中概述了如何执行此操作

答案 1 :(得分:0)

由于$comments_listfalse,请使用mysql_error()查看错误。

$comments_list = mysql_query("SELECT * FROM comments LIMIT 5 ORDER BY `date` DESC, `time` DESC");
if (!$comments_list ) {
    die('Invalid query: ' . mysql_error());
}