我目前正在尝试在codeigniter中编写查询,但遇到了问题,包括并在查询内部爆裂。这是我的代码。
$permitedCodeList = ["ELEC-22", "ELEC-100", "ELEC-200", "999873"];
$query = $this->inventario_db->query("
SELECT *
FROM pt_inv_num_id_equipo
WHERE numID = '123456789' AND codigo IN ('" . implode("','", $permitedCodeList). "')
LIMIT 1
");
$result = $query->row();
我收到以下错误消息:Unknown column 'ELEC' in 'where clause'
。我知道它必须与将数据返回为ELEC-22,ELEC-100,ELEC-200,999873
的内爆性联系在一起,但是它似乎并没有为每个值添加单引号并将其包含在查询中。
非常感谢您的帮助。
答案 0 :(得分:1)
最好使用CI Query Builder
它专门具有where_in
方法来处理这种情况。
您的查询可以按以下方式构造:
$permitedCodeList = ["ELEC-22", "ELEC-100", "ELEC-200", "999873"];
$this->db->from('pt_inv_num_id_equipo');
$this->db->where('numID ', 1234 );
$this->db->where_in('codigo', $permitedCodeList );
$result = $this->db->get()->row_array();
您还可以使用以下代码调试最后一个查询
echo $this->db->last_query(); die();