0

ZF2 プロジェクトのレポート ページに取り組んでいます。ここで、フィルター (「=」、「>」、「>=」、「<」、「<=」、「IN」) に応じて動的クエリを生成する必要があります。generate where ステートメントに DB select クロージャーを使用しています。しかし、今後数日でボトルネックになる可能性があるのではないかと心配しています (パフォーマンスまたは制限による)。

私のアプローチがOKかどうか、またはステートメントのような文字列を生成する必要があるかどうかを誰かが提案できますか
->where('A > 12 AND B < 12 AND C IN (1,2,3)')

それ以外の

->where(function(Where $where){
    $where->equalTo('A', 10)->equalTo('B', 12)->IN('C', array(1,2,3));
}); 

または、より良いアイデアはありますか?

4

1 に答える 1

0

私はより良い解決策を得ました。クロージャを使用する代わりに、そのようなものを直接 Where Object を使用します

$where = new \Zend\Db\Sql\Where();
$where->equalTo('A', 10)->equalTo('B', 12)->IN('C', array(1,2,3));
$sql->select()->where($where);

$where は他の値によって動的に更新できるため、より動的です。それでも他のアイデアがある場合は、共有してください。

于 2012-10-29T08:16:00.537 に答える