php/mysql无法从sql数据库中检索当前登录的名字

bwleehnv  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(212)

我希望你发现并做得很好,我想告诉你,我面临着一个问题,与创建的登录系统,因为我无法检索当前登录的名字从sql数据库;因为它只显示来自数据库的第一条记录,如果我和任何创建的用户一起登录的话。
下面是创建的函数:

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]);
        $conn = mysqli_connect('localhost', 'root', '', 'login_system') or die($connect_error);

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

$data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT $fields FROM `users` WHERE `user_id` = $user_id"));

    }
    return $data;
}

下面是显示名字的代码:

<div class="widget">
    <h2>Hello, <?php echo $user_data['first_name']; ?>!</h2>
</div>

例如:
1) 我创建了以下用户:alex,billy,carlo。
2) 使用billy或carlo用户名登录时;我只得到了与亚历克斯有关的第一张唱片的细节。
如果代码中有问题,以及为什么只显示第一条记录的详细信息,请检查并给出建议。
谢谢您。

rjee0c15

rjee0c151#

可能您将错误的用户id作为查询的输入。还有一种可能性是,用户id有重复项,并且没有标记为唯一密钥。
请更新问题,并提供准确的数据表结构。
ps:在将值注入查询之前,对参数进行转义非常重要。建议使用pdo。

相关问题