我的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.9wwwadminindex.php on line 101
EDIT:我在查询ORDER BY
之前的LIMIT 5
。现在它已经修复,我添加了问题中编辑的echo mysql_error()
您没有在查询中进行任何错误检查。在mysql_query()
调用后,需要执行此操作,因为在查询错误时,它将返回布尔false
,并且脚本将完全按照您显示的方式中断。
将错误检查添加到查询中。mysql_query()
手册或本参考问题中概述了如何做到这一点。
因为$comments_list
就是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());
}