CodeIgniter参数化整数和字符串

时间:2013-05-02 09:29:47

标签: codeigniter

$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。

2 个答案:

答案 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');