Hi,
I am trying to do IN query.
Following is my CDbCriteria object:
object(CDbCriteria)#74 (9) { [“select”]=> array(4) { [0]=> string(2) “id” [1]=> string(4) “name” [2]=> string(5) “state” [3]=> string(9) “lead_time” } [“condition”]=> array(2) { [0]=> string(16) “user_id=:user_id” [1]=> string(29) “state IN ( ‘NEW’,‘ASSIGNED’ )” } [“params”]=> array(1) { [":user_id"]=> string(3) “542” } [“limit”]=> int(-1) [“offset”]=> int(-1) [“order”]=> string(0) “” [“group”]=> string(0) “” [“join”]=> string(0) “” [“having”]=> string(0) “” }
But while running the query I am getting the following error messge:
CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘Array’ in ‘where clause’
Can anyone help me on this?
will
(Phpwindcn)
2
Looks like you passed empty array() parameters into the SQL statement, please double check you php code or provide more details.
This is the corresponding query:
$criteria=new CDbCriteria;
$criteria->select=array ('id','name','state','lead_time');
$states = array("NEW","ASSIGNED");
$place_holders = array();
foreach($states as $v) {
$place_holders[$v] = $v;
}
$criteria->condition= array('user_id=:user_id',"state IN ( '" .implode("','",$place_holders). "' )");
$criteria->params=array(':user_id'=> Yii::app()->user->id);
qiang
(Qiang Xue)
4
The 'condition' of criteria must be a string, not an array.