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的主要内容,如果未能解决你的问题,请参考以下文章

PHP当中如何使用Wampserver连接到Mysql数据库以及怎样使用

无法从 Javascript 调用 PHP 函数 [重复]

从数据数组(php,mysql)编写循环sql查询

如何用php取出数据库表中一列所有数据?

PHP Sql 语句从 MySQL 导出表数据

MySQL:PHP:由于警告,无法从表中获取数据