19

CI Active Record の " Where Not In " に問題があります。一連の ID を除外しようとしています。1 つのレコードではすべてがうまく機能し、複数のレコードでは機能しない理由がわかりませんでした。

マイクエリ

$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_in2番目のパラメーターとして文字列ではなく配列を渡すことを期待してください。

$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 に答える