在CodeIgniter查询中使用IN语句()

时间:2015-04-11 11:03:32

标签: php mysql codeigniter

所以我有这个方法来检索我的数据:

    public function retrieve_not_members($group_id){
        $sql= "SELECT * FROM pnp_officer_tbl WHERE pnp_id NOT IN (SELECT pnp_id FROM group_members_tbl WHERE group_id = ?)";
        $this->db->query($sql, array($group_id));       

        echo $this->db->last_query();

        $query = $this->db->get();
        $data = $this->return_data($query);
        var_dump($data);
        }

它返回false。但是,当我尝试直接在我的数据库中通过$this->db->last_query();查询返回的字符串时,它正常工作。为什么会这样?

这是返回的查询字符串:

  

SELECT * FROM pnp_officer_tbl WHERE pnp_id NOT IN(SELECT pnp_id FROM   group_members_tbl WHERE group_id ='GROUP-0002')

我现在正在寻找近1个小时的答案。谢谢!

1 个答案:

答案 0 :(得分:2)

不,$this->db->get()是多余的,因为您已经制作了$this->db->query()。在->query()方法之后,通过->result()返回响应:

public function retrieve_not_members($group_id)
{
    $sql = "SELECT * FROM pnp_officer_tbl WHERE pnp_id NOT IN (SELECT pnp_id FROM group_members_tbl WHERE group_id = ?)";
    $query = $this->db->query($sql, array($group_id));       
    return $query->result();
}