在 where_in 中使用 implode 函数的 Codeigniter 查询生成器

Codeigniter query builder using implode function in where_in

这是我使用内爆函数的正常 sql 查询:

SELECT * from search_result WHERE skills IN ('".implode("','",$s_id)."');  

现在我想将其转换为 codeigniter 形式。我尝试了以下代码,但它失败了

$this->db->from('search_result');
$this->db->where_in('skills','".implode("','",$s_id)."');
$query = $this->db->get();  

这是我的 $s_id 数组:

Array ( [0] => 2D Design [1] => 3D Design [2] => 3D Modelling ) 

所以请任何人帮助我做到这一点。提前致谢:)

官方文档说的

$names = array('Frank', 'Todd', 'James'); # Data Array 
$this->db->where_in('username', $names); # passing array

像下面这样尝试

方法01(推荐)

$this->db->from('search_result');
$this->db->where_in('skills',$s_id);
$query = $this->db->get();

方法02

$this->db->from('search_result');
$this->db->where_in('skills',implode("','",$s_id));
$query = $this->db->get();

这一行有什么问题

$this->db->where_in('skills','".implode("','",$s_id)."');

不要用 '" 引号包裹函数。然后它将作为字符串值保存到数据库中。


链接

  1. where_in clause in codeigniter.com

你可以这样写:

$this->db->from('search_result');
$this->db->where_in('skills', $s_id);
$query = $this->db->get();

Official doc

$names = array('Frank', 'Todd', 'James');

$this->db->where_in('username', $names);

// Produces: WHERE username IN ('Frank', 'Todd', 'James')