php中的“警告:mysql_fetch_assoc()”函数

时间:2013-04-05 15:26:22

标签: php function

我有以下功能:

function user_data($user_id) {

    $data = array();
    $user_id = (int)$user_id;

    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    if ( $func_num_args > 1 ) {     
        unset($func_get_args[0]);

        $fields = '`' . implode('`, `', $func_get_args) . '`';

        $data = mysql_fetch_assoc(  mysql_query(" SELECT $fields FROM `users` WHERE `user_id` = $user_id ")  );


        return $data;
    }       
}   

我得到的错误消息是:警告:mysql_fetch_assoc()期望参数1是资源,在第271行的C:\ xampp \ htdocs \ mytest \ core \ functions \ users.php中给出布尔值 知道我的功能有什么问题吗?

5 个答案:

答案 0 :(得分:1)

您的MySQL查询失败。您需要考虑添加一些错误检查。当mysql_error的结果为假时,请使用mysql_query

答案 1 :(得分:0)

您的连接很可能超出范围。你需要将它传递给你的函数。

function user_data($user_id, $connect) {
...
}

答案 2 :(得分:0)

http://php.net/manual/en/function.mysql-query.php开始,mysql_query会在出错时返回FALSE。在这种情况下,存在问题,因此返回FALSE,会传递给mysql_fetch_assoc,从而导致错误。

正如数据中所说,使用mysql_error来查找问题。

答案 3 :(得分:0)

mysql_query()在失败时返回FALSE。 使用前请检查$fields变量。 而是使用mysqli

$result = mysql_query("SELECT * FROM $fields") ;
if ($result){
  //continue here, count rows or do something else.
}

答案 4 :(得分:0)

查询" SELECT $fields FROM users WHERE user_id = $user_id "由于某种未知原因而失败。这导致mysql_query返回PHP资源的FALSE内容。

调用mysql_error()以找出查询失败的原因。