我正在尝试使用我的模型将信息提取到页面中。问题是我需要使用变量在我的mysql上使用IN
条件。
这是我目前使用的代码
$list_id = '1,3';
$clients = ListSubscriber::model()->findAll(array('condition'=>'list_id IN (:list_id)','params'=>array(':list_id'=>$list_id)));
我不一定知道$list_id
中将存储多少个数字,因此需要变量与IN
一起使用。
代码执行时没有错误,但似乎只返回第一个$list_id
数的值,所以在这种情况下它只找到list_id
= 1的用户。
感谢任何帮助。我发现了这个问题Yii addInCondition 但是他们使用的是静态值,但这并不能解决我的问题。
当我使用静态值时,代码会按预期执行结果。
答案 0 :(得分:3)
您可以使用addInCondition:
$list_id = '1,3';
$criteria = new CDbCriteria();
$arr_list_id = explode(",",$list_id);
$criteria->addInCondition("list_id ", $arr_list_id );
$clients = ListSubscriber::model()->findAll($criteria);
答案 1 :(得分:1)
$list_ids = array(1,3);
$clients = ListSubscriber::model()->findAllByAttributes(array('list_id'=>$list_ids));