gpt4 book ai didi

php - 运行查询时无法从数据库检索用户信息,codeigniter

转载 作者:行者123 更新时间:2023-11-29 08:28:49 24 4
gpt4 key购买 nike

我遇到了一个问题,它应该很简单,但我似乎无法解决它。我试图通过在数据库中搜索用户名来获取用户的用户 ID。但我只是得到一个空值。请让我知道我可能做错了什么。

以下是查询代码:

private function get_u_id($user){
$sql = "SELECT * FROM users WHERE 'username'=?";
$query = $this->db->query($sql, array($user));
foreach($query->result as $row){
return $row['id'];
}
}

我将此信息存储在 session 中,因此代码如下:

$user_session_data = array(
'user'=>$p_info['username'],
'email' => $this->get_user_email($p_info['username']),
'u_id' => $this->get_u_id($p_info['username']),
'validated' => TRUE
);

//set a session, (username, email, user_id)

private function set_session($user_data) {
$this->session->set_userdata($user_data);
}

当我使用 print_r() 输出此 session 时,它看起来像这样

[user_data] => [user] => wilprim [email] => [u_id] => [validated] => 1 

最佳答案

您在查询中的引号不正确:

$sql = "SELECT * FROM users WHERE 'username'=?";
^-- ^--

'username' 是一个 STRING,而不是字段名称。 username 也不是保留字,因此绝对不需要引用它。

用户:

$sql = "SELECT * FROM users WHERE `username`=?"; // note the backticks
$sql = "SELECT * FROM users WHERE username=?"; // no quotes at all

如前所述,您的查询返回任何数据的唯一方法是您的用户名实际上是用户名

关于php - 运行查询时无法从数据库检索用户信息,codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com