首页 文章

获取mysql_fetch_row()期望参数1是资源,布尔给定[重复]

提问于
浏览
-1

可能重复:mysql_fetch_array()期望参数1是资源,在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 回答

  • 2

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

    echo mysql_error();
    

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

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

    通过执行此操作,它将允许您检查 $display 是否已设置..

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

  • 0

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

  • 0

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

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

  • 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 变量几乎肯定会使查询无法解析,从而导致失败 .

    但是,即使情况并非如此,你需要弄清楚为什么之前的调用失败了 .

相关问题