mysql_num_rows()期望参数1是资源

时间:2011-10-21 10:47:06

标签: php mysql

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
  Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error

我在谷歌上搜索以下错误的答案。但没有找到一个好的明确解决的答案。此错误仅显示时间。有时候它有效,有时它不起作用。请帮助我弄明白。

这是在我的本地服务器上运行的cron tab php脚本,用于同步来自在线服务器的数据。

$db_online = mysql_connect("localhost", "root", "mypw",true) 
             or die('Could not connect to mysql server');
mysql_select_db("tblMember",$db_online);
$sql="SELECT * FROM members WHERE catid='2' ORDER BY id ASC LIMIT 0,5";
$result= mysql_query($sql,$db_online) or trigger_error(mysql_error().$sql);
$numRows = mysql_num_rows($result);
echo $numRows;

2 个答案:

答案 0 :(得分:1)

默认情况下,

trigger_error生成E_USER_NOTICE,但不会中断流程。 在这种情况下,mysql_count_rows仍然会被执行。

试试这个:

if ($result = mysql_query($sql, $db_online))
  $numRows = mysql_num_rows($result);
else
  trigger_error(mysql_error().$sql);

答案 1 :(得分:-1)

每当您的查询失败时,它将返回false而不是查询结果资源。在这些情况下,mysql_num_rows()无法正常工作,因为它无法计算false上的行数。您需要捕获此可能的错误。也许是这样的:if (!$result) die('Error');