Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql_num_rows()希望参数1是资源_Php_Mysql - Fatal编程技术网

Php mysql_num_rows()希望参数1是资源

Php mysql_num_rows()希望参数1是资源,php,mysql,Php,Mysql,可能重复: 我已经在谷歌上搜索了以下错误的答案。但我没有找到一个清晰的答案。此错误只会不时显示。有时有效,有时无效。请帮我弄清楚 这是一个在本地服务器上运行的cron-tab php脚本,用于从在线服务器同步数据 $db_online = mysql_connect("localhost", "root", "mypw",true) or die('Could not connect to mysql server'); mysql_select_db("tblM

可能重复:

我已经在谷歌上搜索了以下错误的答案。但我没有找到一个清晰的答案。此错误只会不时显示。有时有效,有时无效。请帮我弄清楚

这是一个在本地服务器上运行的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;

trigger\u error
默认情况下会生成一个
E\u用户通知
,但不会中断流程。 在这种情况下,
mysql\u count\u rows
仍会执行

试试这个:

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

每当查询失败时,它将返回
false
,而不是查询结果资源。在这些情况下,
mysql\u num\u rows()
将无法按预期工作,因为它无法计算
false
上的行数。您需要捕获这个可能的错误。可能是这样:
如果(!$result)死亡('Error')

它不也会抛出sql错误吗?不,它不会发送任何sql错误。。例如连接失败或触发错误..应该是。您确定这是引起错误的代码的正确部分吗?为什么您会看到
mysql\u num\u rows()期望参数1是resource
错误,但在此之前没有错误?还有一个错误。限制条款是5。你他妈的确定这就是你实际运行的代码吗?它只能解决症状而不能解决原因。失败的查询是一种例外情况,应该没有。你必须找出为什么它不是一个资源,而不是默默地避免它。好吧,它确实会抛出一个可以捕获和记录的通知,你可以在这个
其他
中放入任何你喜欢的东西。所描述的问题是由于任何原因而出现问题的附带损害。查询很简单,而且是硬编码的,所以连接可能有问题。我无法根据给出的信息确定这一点,但我可以告诉您,“资源”错误是由于错误处理实际错误造成的。在我的代码中,我正在解决这个问题,腾出空间或找到实际的错误。我绝不会默默地忽略实际的错误。我已经添加了如上所述的代码。。仍然是相同的错误。有什么建议吗?并且您确定您发布了所有代码。mysql\u查询返回资源或false。使用此if语句mysql\u num\u rows只能在它是资源时执行。可能您正在运行另一个脚本或脚本的另一部分,它给出了实际错误。这是我正在运行的唯一代码。。有时会生成回显值10(因为mysql limit子句是10)。有时会显示错误“mysql_num_rows()期望参数1是resource”。我认为解释否决票是一种常见的礼貌。我的答案完全符合问题中提出的问题。我不明白为什么这个答案被否决了。对于所述问题,这是一个完美有效的解决方案。@bos使用die()无效,也不是一个解决方案。长大后,学习如何编写容错程序,而不是在非常愚蠢的场合死掉。这就是你的问题所在。看……这就是为什么如果你投了反对票,你应该发表评论。我意识到
die()。然而,这不是我回答的重点,只是作为一个例子。正确的错误处理取决于程序员自己……我只是暗示他应该从哪里开始寻找问题。因此,我的代码是绝对可行的。一旦他意识到问题的根源,他就可以着手解决它。顺便说一句,我不认为告诉人们长大对这里有任何帮助。而且我厌倦了屈尊俯就像你这样的人,他们认为他们可以根据自己的喜好侮辱周围的每一个人。现在你是这里唯一一个听起来他真的需要长大的人。糟糕的表演……真的。