我使用Yii Framework,我需要在很多条件下构建困难的查询。 我正在填充2个数组$条件和$值。 我有一个问题。 以下是示例 当我使用
$usersId = '1,2';
$conditions[] = 'e.user_id IN(:usersId)';
$values[':usersId'] = $usersId;
我只获得user_id = 1
的值当我不使用选项并手动编写时
$usersId = '1,2';
$conditions[] = 'e.user_id IN(' . $usersId . ')';
没问题。
当然我可以使用二次构造,但似乎不太好。
答案 0 :(得分:2)
你应该addInCondition
$criteria->addInCondition('e.user_id',array(1,2));
答案 1 :(得分:2)
Yii方式是使用CDbCriteria addInCondition
函数
$usersId = array(1,2); //must be array
$criteria=new CDbCriteria();
$criteria->addInCondition('user_id',$usersId);
$result = MyModel::model()->findAll($criteria);
答案 2 :(得分:1)
$ values [':usersId'] = $ usersId;
如果我理解你的错误,你可以使用yii中的BindParam函数吗?
而不是这个 - $ values [':usersId'] = $ usersId;
写这个 - $ command-> BindParam(':usersId',$ usersId,PDO :: PARAM_STR);
很简单,您将参数绑定到命令语句。
希望它有效!