2011-01-24 104 views

回答

0

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

0

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

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

0

该错误意味着无论您在函数801的801.ffs文件中提供的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"]; 
} 
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); 
+0

您可以在不嵌套的情况下编写`if(!$ result = ...)` – zerkms 2011-01-24 02:56:50

0

其实你已经通过了一个错误的查询mysql_fetch_assoc()。如果您有错误的查询,则mysql_query()函数将返回一个假布尔值,当查询成功完成时,它会返回一个资源变量。如果您不检查查询是否成功执行并将其直接传递给mysql_fetch_array(),则可能会经常遇到此错误。