19

我对 CI Active Record 的“ Where Not In ”有疑问。我正在尝试排除一系列 ID。我不明白为什么在一张唱片上一切都很好而且花花公子,但在多唱片上却不行。

我的查询

$this->db->where_not_in('crm.user_id', $ignore);

问题是当我分析查询错误时。

带有一串ID

// $ignore = "12,13";    
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('16,13') 
AND `survey` =  1 

带有一串报价 ID

// $ignore = "'12','13'";
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('\'16\',\'13\'') 
AND `survey` =  1 

我是否被迫执行“ or_where_not_in ”或类似的循环?

4

1 回答 1

48

where_inwhere_not_in期望您传递一个数组,而不是字符串作为第二个参数。

$ignore = array(12, 13);

$this->db->where_not_in('crm.user_id', $ignore);

链接到文档: http: //www.codeigniter.com/userguide2/database/active_record.html

于 2013-05-21T15:39:10.963 回答