Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CodeIgniter Active Record Where Not In String

Tags:

codeigniter

I'm having an issue with CI Active Record's "Where Not In". I am trying to exclude a series of ID's. I couldn't understand why everything worked fine and dandy with one record, but not with multiple.

My Query

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

The problem is when I profile the the Query is wrong.

With a string of ID's

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

With a string of Quotes ID's

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

Am I forced to do a loop of "or_where_not_in" or something like that?

like image 208
JREAM Avatar asked May 21 '13 15:05

JREAM


1 Answers

where_in and where_not_in expect you to pass an array, not a string as the 2nd parameter.

$ignore = array(12, 13);

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

Link to the docs: http://www.codeigniter.com/userguide2/database/active_record.html

like image 72
Rocket Hazmat Avatar answered Nov 15 '22 09:11

Rocket Hazmat