私が取り組んでいるシステムでは、データベースを処理するためにPropelを使用していますが、さまざまなWHERE IN条件を受け入れる必要のある生のクエリを準備しています。これは私のために働いていない、明らかにPropelで準備済みのSQL文をWHERE INで使用する
$c = Propel::getConnection();
$q = $c->prepare("SELECT foo FROM bar WHERE blah IN(:ids)");
$q->execute(array(':ids' => array(1, 2, 3, 4, 5)));
:
私が何をしようとしている単純な例はこれです。また、私の ':ids'パラメータとしてimplode( '、' array(1,2,3,4,5))を使ってみましたが、これもうまくいきません。最初のメソッドは配列を受け入れる必要があり、2番目のメソッドは文字列を整数と比較するという不満があります。
WHERE INのクエリに値の配列を渡す適切な方法はありますか?ハードコーディングする必要はありません。ループの繰り返しごとに準備するという意味です。
基準を作成して代わりにdoSelectを使用するオプションがないことに注意してください。ここで示した例よりもクエリが実際ははるかに複雑であり、私はそれをそのように構築することができないと真剣に考えています。
多くの感謝!
どのようなDBエンジンですか? – ain
申し訳ありません - postgresql。すべての回答の皆さんありがとう!それが正しい方向に私を導いた。 –