这个错误代码对PHP意味着什么

时间:2011-01-24 02:49:53

标签: php mysql

  

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

我正在尝试将预订日历脚本安装到服务器上,但在运行时会收到此错误。

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/illstudy/public_html/includes/functions.php on line 801

5 个答案:

答案 0 :(得分:2)

这意味着mysql_query()没有返回MySQL资源。它返回布尔值false,这通常意味着SQL中存在错误。将SQL复制并粘贴到PhpMyAdmin或其他数据库管理器中,看看它吐出的错误类型。为避免这种情况,请始终在从中获取数据之前检查mysql_query()的返回值:

if( !( $result = mysql_query( "SELECT bacon FROM fridge" ) ) ) {
    //Execute code here for query failure such as calling mysql_error() to discover the exact problem
}

注意它也可能意味着你没有连接到MySQL。如果你还没有这样做,试试这个:

mysql_connect( $host, $user, $pass );

答案 1 :(得分:0)

脚本中存在错误。它将布尔值(true或false)传递给想要来自SQL查询的记录集的函数。这可能是因为SQL查询失败,并且脚本没有检查错误。但是,如果没有看到导致问题的代码,那么很难更具体。

答案 2 :(得分:0)

这意味着你从mysql获得的'资源'是一个布尔值...这可能意味着它是FALSE,这意味着你的查询有错误。

我建议在调用mysql_fetch_assoc()之前,你应该检查$ resource === FALSE,如果是,则调用mysql_error()。

答案 3 :(得分:0)

该错误意味着您在functions.php文件的第801行提供的任何内容mysql_fetch_assoc都不是MySQL结果资源。

在此示例中,您可以看到查询中的$result已传递到mysql_fetch_assoc。您的代码中可能存在一个错误,但不会导致MySQL结果错误。

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_query("SELECT * FROM sometable");

while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

答案 4 :(得分:0)

实际上您向mysql_fetch_assoc()传递了错误的查询。如果查询错误,mysql_query()函数返回false布尔值,查询成功完成后返回资源变量。如果您不检查查询是否成功执行并将其直接传递给mysql_fetch_array(),您可能会经常收到此错误。