0

私は Yii Framework を使用していますが、条件の多い難しいクエリを作成する必要があります。$conditions と $values の 2 つの配列を埋めています。そして、私には1つの問題があります。以下は例です

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

user_id = 1 から値のみを取得します

オプションを使わず手動で書く場合

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

問題なし。

もちろん、2 番目の構築も使用できますが、あまり良くないようです。

4

3 に答える 3

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 に答える
2

あなたがすべきaddInCondition

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

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

私があなたの意見を正しく理解していれば、yiiでBindParam関数を使用できますか?

これの代わりに-$values[':usersId'] = $ usersId;

これを書く-$command->BindParam(':usersId'、$ usersId、PDO :: PARAM_STR);

非常に簡単に言えば、パラメータをコマンドステートメントにバインドしているだけです。

それがうまくいくことを願っています!

于 2012-08-29T15:38:07.100 に答える