0

我有以下功能:

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 中给出的布尔值知道我的问题在哪里功能?

4

5 回答 5

1

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

于 2013-04-05T15:28:56.433 回答
0

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

function user_data($user_id, $connect) {
...
}
于 2013-04-05T15:28:07.233 回答
0

http://php.net/manual/en/function.mysql-query.phpmysql_query将返回FALSE错误。在这种情况下,有一个问题,所以它返回FALSE,它被传递给mysql_fetch_assoc,导致错误。

正如 datasage 所说,用于mysql_error查找问题。

于 2013-04-05T15:29:06.183 回答
0

mysql_query()失败返回FALSE。在使用它之前检查你的$fields变量。并mysqli改为使用。

$result = mysql_query("SELECT * FROM $fields") ;
if ($result){
  //continue here, count rows or do something else.
}
于 2013-04-05T15:29:23.043 回答
0

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

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

于 2013-04-05T15:30:28.510 回答