$code = Array(1,2,3,4)
$sql = "SELECT * FROM Table1 WHERE Field1 IN (?)";
$query = $this->db->query($sql, array($code));
$this->db->last_query()
将显示
"SELECT * FROM Table1 WHERE Field1 IN ('1,2,3,4')"
如何在IN状态下删除单引号?
即使$code
是字符串数组,例如
$code = Array('This one', 'Next code', 'And this')
声明将是:
"SELECT * FROM Table1 WHERE Field1 IN ('This one, Next Code, And This')"
我错过了什么吗?
TIA。
答案 0 :(得分:3)
您可以使用这种简单易行的方式
$this->db->where_in('Field1',$code);
$this->db->get('Table1');
答案 1 :(得分:1)
来自codeigniter活动记录manual
$ this-> db-> where()接受可选的第三个参数。如果你设置它 为FALSE,CodeIgniter不会尝试保护您的字段或表格 带反叛的名字。
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);
因此,在带有FALSE
的where子句上放置第3个参数然后你的查询应该是
$this->db->select('*')
->where('Field1 IN('.$code.'),NULL,FALSE)
->get('Table1');