codeigniter where_in 中的数据库查询是数组
database query in codeigniter where_in is array
我在数据库 table 中存储了一些 ID,其列名为“defaultdest”,例如“1,2,3,4,5,6”。
我已经在控制器中获取了它,现在我需要在另一个名为“目的地”的 table 中进行查询。我需要根据 IDs 获取目的地的地方是“1,2,3,4,5,6”。
这里是另一个table
的查询结果
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";
这不起作用,得到空白结果。
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()
用于将字符串打断成数组。
我在数据库 table 中存储了一些 ID,其列名为“defaultdest”,例如“1,2,3,4,5,6”。 我已经在控制器中获取了它,现在我需要在另一个名为“目的地”的 table 中进行查询。我需要根据 IDs 获取目的地的地方是“1,2,3,4,5,6”。
这里是另一个table
的查询结果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";
这不起作用,得到空白结果。
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()
用于将字符串打断成数组。