3

Doctrine ORMを使用してsymfony 1.4で開発しています。ID を持つ配列を使用して NOT IN where 句を作成できません。これは私のコードです:

$results = Doctrine_Query::create()
  ->from('Asset a')
  ->where('a.id NOT IN (?)', implode(',', $ids))
  ->execute();

生成されるこのクエリの sql は次のとおりです。

WHERE (a.id NOT IN ('1,5,6,7,8,9,10,11,12,13,14,15,17,18,20,24,25,26,29,30,28'))

ご覧のとおり、ID で満たされた配列を文字列のように扱っています。配列の内破なしでも試しましたが、次のエラーが発生します。

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

除外された ID を含む配列 $ids は、単純な数値です。

この句の正しい構文がわかりません。ありがとう

4

1 に答える 1

2

使用する必要がありますwhereNotIn古いドキュメントですが、それでも問題ありません)。

$results = Doctrine_Query::create()
  ->from('Asset a')
  ->whereNotIn('a.id', $ids)
  ->execute();
于 2012-04-19T16:56:42.517 に答える