-1

我的 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 5ORDER BY. 现在它已修复,我echo mysql_error()在问题中添加了已编辑的内容。

4

2 回答 2

2

您没有在查询中进行任何错误检查。您需要mysql_query()调用后执行此操作,因为在查询错误时,它将返回布尔值false,并且您的脚本将完全按照您显示的方式中断。

向您的查询添加错误检查。如何做到这一点在手册mysql_query()或此参考问题中进行了概述。

于 2012-02-04T19:01:21.437 回答
0

因为$comments_listis false,用它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());
}
于 2012-02-04T19:02:01.210 回答