这是我使用implode函数的正常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 )
所以有人请帮我这样做。在此先感谢:)
答案 0 :(得分:2)
官方文件说
$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)."');
不要使用'
或"
引号包装函数。然后它将作为STRING值保存到DB。
<强>链接强>
答案 1 :(得分:1)
你可以这样写:
$this->db->from('search_result');
$this->db->where_in('skills', $s_id);
$query = $this->db->get();
$ names = array(&#39; Frank&#39;,&#39; Todd&#39;,&#39; James&#39;);
$ this-&gt; db-&gt; where_in(&#39; username&#39;,$ names);
//生成:WHERE用户名IN(&#39; Frank&#39;,&#39; Todd&#39;,&#39; James&#39;)