codeigniter 中的数据库查询 where_in 是数组

我有一些 id 存储在数据库表中,列名称为“defaultdest”,例如“1,2,3,4,5,6”。我已在控制器中获取它,现在我需要在另一个名为“目的地”的表中进行查询。我需要根据 ID 获取目的地的是“1,2,3,4,5,6”。


这是另一个表的查询结果


public function index()

    {

        $data = $this->data;

        $idlists = explode(",", get_option('defaultdest'));

        $data['destlist'] = $this->ui_model->destfetch($idlists);

        $this->load->view('themes/ui/home/'.get_option('uihometype').'', $data);

    }

这是我在模型中的数据库查询


function destfetch($idlists)

         {

            $this->db->set_dbprefix('');

            $this->db->select('*');

            $this->db->where_in('id', $idlists);

            $this->db->from("destinations");

            $query = $this->db->get();


            //print_r($this->db->last_query());

            return $result = $query->result_array();

            

         } 

注意:idlists 值为(由 get_option 方法返回)


$idlists = "1,2,3,4,5,6";

这不起作用,得到空白结果。


开满天机
浏览 173回答 1
1回答

慕仙森

where_in 适用于数组而不是字符串。所以你的 $idlists 不应该是一个带有 '1,2,3,4,5' 的字符串,而是一个 ids 数组。您只需执行以下操作即可做到这一点:$idlists = "1,2,3,4,5,6";            //String$this->db->where_in('id', explode(',', $idlists));注意:- explode()用于将字符串分解为数组。
打开App,查看更多内容
随时随地看视频慕课网APP