0

我使用 Yii 框架,我需要构建具有许多条件的困难查询。我正在填充 2 个数组 $conditions 和 $values。我有一个问题。下面是示例当我使用

$usersId = '1,2';
$conditions[] = 'e.user_id IN(:usersId)';
$values[':usersId'] = $usersId;

我只从 user_id = 1 获得价值

当我不使用选项并手动编写时

$usersId = '1,2';
$conditions[] = 'e.user_id IN(' . $usersId . ')'; 

没问题。

当然我可以使用第二个构造,但它似乎不是很好。

4

3 回答 3

2

你应该addInCondition

$criteria->addInCondition('e.user_id',array(1,2));
于 2012-08-29T15:46:46.343 回答
2

Yii 方法是使用CDbCriteria addInCondition函数

$usersId = array(1,2); //must be array
$criteria=new CDbCriteria();
$criteria->addInCondition('user_id',$usersId);

$result = MyModel::model()->findAll($criteria);
于 2012-08-29T15:47:34.003 回答
1

$values[':usersId'] = $usersId;

如果我正确理解您的问题,您可以在 yii 中使用 BindParam 函数吗?

而不是这个 - $values[':usersId'] = $usersId;

写这个 - $command->BindParam(':usersId', $usersId, PDO::PARAM_STR);

很简单,您将参数绑定到命令语句。

希望它有效!

于 2012-08-29T15:38:07.100 回答