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()。然而,这不是我回答的重点,只是作为一个例子。正确的错误处理取决于程序员自己……我只是暗示他应该从哪里开始寻找问题。因此,我的代码是绝对可行的。一旦他意识到问题的根源,他就可以着手解决它。顺便说一句,我不认为告诉人们长大对这里有任何帮助。而且我厌倦了屈尊俯就像你这样的人,他们认为他们可以根据自己的喜好侮辱周围的每一个人。现在你是这里唯一一个听起来他真的需要长大的人。糟糕的表演……真的。