我希望你发现并做得很好,我想告诉你,我面临着一个问题,与创建的登录系统,因为我无法检索当前登录的名字从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用户名登录时;我只得到了与亚历克斯有关的第一张唱片的细节。
如果代码中有问题,以及为什么只显示第一条记录的详细信息,请检查并给出建议。
谢谢您。
1条答案
按热度按时间rjee0c151#
可能您将错误的用户id作为查询的输入。还有一种可能性是,用户id有重复项,并且没有标记为唯一密钥。
请更新问题,并提供准确的数据表结构。
ps:在将值注入查询之前,对参数进行转义非常重要。建议使用pdo。