PHP / Mysql 无法从 sql 数据库中检索当前登录的 first_name
Posted
技术标签:
【中文标题】PHP / Mysql 无法从 sql 数据库中检索当前登录的 first_name【英文标题】:PHP / Mysql not able to retrieve current logged in first_name from sql database 【发布时间】:2019-05-03 05:54:15 【问题描述】:我希望你找到并做得很好,我想通知你我在创建登录系统时遇到了问题,因为我无法从 SQL 数据库中检索当前登录的 first_name;因为如果我使用任何创建的用户登录,它只会显示数据库中的第一条记录。
这里是创建的函数:
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 用户名登录时;我只得到了与 Alex 相关的第一条记录详细信息。
如果代码中存在问题以及为什么它只显示第一条记录详细信息,请您检查并提出建议。
谢谢。
【问题讨论】:
你确定你传递的是 billy 或 Carlo ID 吗? 【参考方案1】:您可能将错误的 user_id 作为查询的输入。也有可能 user_id 有重复并且没有标记为唯一键。
请更新问题并提供带有数据的准确表结构。
PS:在将值注入查询之前转义参数非常重要。建议使用 pdo。
【讨论】:
以上是关于PHP / Mysql 无法从 sql 数据库中检索当前登录的 first_name的主要内容,如果未能解决你的问题,请参考以下文章