【问题标题】:Codeigniter join won't workCodeigniter 加入不起作用
【发布时间】:2012-07-13 03:22:40
【问题描述】:

我有一个功能可以从数据库中获取单个用户,以便我可以显示它,用于用户配置文件和其他内容。

嗯,我希望能够为组创建一个单独的表,所以如果我愿意,我可以添加更多,而且很简单。所以我在 users 表中有一个 group_id 字段,所以我可以这样做,它会将 groups 表与 groups id 列连接起来。

好吧,我能够为我的另一个项目成功地做到这一点,但是当我将该功能移至当前项目时(我使用相同的 EXACT 方法在两个项目上显示配置文件)它不再起作用。 .. 什么都没有返回...

public function getUser($username) {
    if (empty($username)) {
        return false;
    }
    $this->ci->db->from('users');
    $this->ci->db->join('groups','users.group_id = groups.id');
    $query = $this->ci->db->where('username',$username)->get();

    $user = $query->row();

    return $user;
}

这就是功能,有人可以帮我解释为什么它不起作用吗?我在控制器、模型和库中都试过了,都没有工作。

【问题讨论】:

  • 如果你改为使用return 'test';,它会返回字符串吗?
  • 是的,如果我要注释掉“$this->ci->db->join('groups','users.group_id = groups.id');”它工作得很好,完全没有问题
  • 你试过类似return print_r($query)
  • 如果这不起作用,则尝试将 sql 更改为简单的 select *from users,看看您是否至少可以从数据库中获取一些东西。
  • 你有什么错误吗?尝试使用“echo $this->db->last_query();”记录查询以确保它是正确的或调用 get() 函数后“返回 $this->db->last_query()”

标签: database codeigniter join


【解决方案1】:

我觉得自己很愚蠢,但无论如何我发现了问题。

我忘记为 group_id 的特定用户实际添加一个值

所以列中的 group_id 为 0,当它需要至少为 1 或更高时,更改它后,它工作得很好......

感谢你们俩的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多