可能重复:
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]; }
如何删除此警告消息?
答案 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。您应首先检查您的查询是否成功。