-1

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

我收到以下警告:

警告: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

4 回答 4

2

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

echo mysql_error();

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

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

通过这样做,它将允许您检查是否$display已设置..

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

于 2012-11-15T09:09:06.497 回答
0

你可能有一个 MySQL 错误。试着把你的 -line放在or die(mysql_error());后面mysql_query(),告诉我们错误信息是什么!

于 2012-11-15T09:07:37.857 回答
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错误的变量几乎肯定会使查询无法解析,从而导致失败。

但是,即使情况并非如此,您也需要弄清楚早期调用失败的原因。

于 2012-11-15T09:07:43.447 回答
0

您的变量$gresult1似乎是一个布尔值,但它必须是来自mysql_query().

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

于 2012-11-15T09:09:00.903 回答