我有一个问题mysqli_fetch_assoc()和mysqli_result我在下面发布了我的代码

时间:2014-10-12 04:50:56

标签: php jquery function mysqli

我需要一些帮助来检查这个功能,提前感谢任何帮助:

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 = mysqli_fetch_assoc(mysqli_result ("SELECT $fields FROM 'users' WHERE 'user_id' = $user_id"));

    print_r($data);
    die();

    return $data;
    }
}

2 个答案:

答案 0 :(得分:0)

如果您的意图是返回与用户ID相关的行,那么只需删除其他功能:

function user_data($user_id) {

    $data = array();
    $user_id = (int) $user_id;
    $con = new mysqli('localhost', 'username', 'password', 'database');
    $user_id = $con->real_escape_string($user_id);
    $sql = "SELECT * FROM users WHERE user_id = '$user_id' ";
    $query = $con->query($sql);
    if($query->num_rows > 0) {
        $data = $query->fetch_assoc();
    }

    return $data;
}

您对func_get_args的使用没有意义,因为您在使用前只是取消了它们。并在查询中删除单引号。

标识符引号是反引号。或者只是删除它们。

答案 1 :(得分:0)

嘿尝试转义查询中的变量。 结果它返回null。所以查询没有执行

   $data = mysqli_fetch_assoc(mysqli_result ("SELECT "+$fields+" FROM 'users' WHERE 'user_id' = "+$user_id+""));