获取mysql_fetch_row()期望参数1是资源,给定布尔值

时间:2012-11-15 09:04:18

标签: php

  

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

我收到以下警告:

  

警告:mysql_fetch_row()期望参数1是资源,布尔给定
  在第355行的/home/content/97/9548797/html/test/index.php中

代码:

$gresrow = mysql_fetch_row($gresult1); 
while( $row = mysql_fetch_row( $gresult1 ) ){ $GDs[] = $row[0]; }

如何删除此警告消息?

4 个答案:

答案 0 :(得分:2)

我打印出mysql_error()以查看错误消息是什么。

echo mysql_error();

就个人而言,我认为打印SQL查询会有所帮助,尤其是在添加动态变量的情况下。这样你就可以准确地读出正在生成和发送到MySQL的SQL。

$query = "SELECT id FROM users where parentid=$display";
echo $query;

通过执行此操作,您可以检查是否设置了$display ..

最后,我强烈建议您避免使用mysql_函数,因为它们很快就会被弃用。

答案 1 :(得分:0)

您可能有MySQL错误。尝试将or die(mysql_error());放在mysql_query()行后面,告诉我们错误信息是什么!

答案 2 :(得分:0)

它抱怨,因为gresult1 布尔值。 原因它是一个布尔值是因为当你之前的调用(几乎肯定是mysql_query)失败时它被设置为false。

您需要修复那个问题。或者至少检测它而不是盲目地使用返回值,例如:

$gresult1 = mysql_query("some dodgy non-functional query");
if (!$gresult1) {
    # handle error elegantly, then return
}
# NOW you can use gresult1 safely.

要考虑的一件事,假设您在其他地方的评论中查询不仅仅是一个拼写错误,那就是使用$diplay。你可能想检查一下你的意思是$display"s"},因为一个不存在或格式错误的$diplay变量几乎肯定会导致查询无法解析,从而导致失败

但是,即使情况并非如此,你需要找出为什么之前的通话失败。

答案 3 :(得分:0)

您的变量$gresult1似乎是一个布尔值,但它必须是mysql_query()的结果。

我猜,mysql_query()返回FALSE。您应首先检查您的查询是否成功。