複数のwhere()句を使用してselectステートメントを動的に作成することは可能ですか?複数の引数を取る関数を想定します。N番目の引数が空でない場合は、ステートメントに-> where('sth =? "、$ value)句を追加し、すべての引数に対してこれを実行します。
さて、ささいな方法は巨大なスイッチケースを使うことですが、それは間違っていると感じます。where()句が配列を受け入れる場合、それは非常に簡単ですが、今はどうでしょうか?
ありがとう!
複数のwhere()句を使用してselectステートメントを動的に作成することは可能ですか?複数の引数を取る関数を想定します。N番目の引数が空でない場合は、ステートメントに-> where('sth =? "、$ value)句を追加し、すべての引数に対してこれを実行します。
さて、ささいな方法は巨大なスイッチケースを使うことですが、それは間違っていると感じます。where()句が配列を受け入れる場合、それは非常に簡単ですが、今はどうでしょうか?
ありがとう!
私はコメントで、普遍的な WHERE ラッパーを実装するのは簡単な作業ではないことを指摘しました。それが (私が思うに) ZF 開発者が、基本的に SQL 式を使用するより単純な方法を使用することに決めた理由です。配列。
あなたの場合にそのような機能を実装するのは、それほど簡単ではありません。
function whereX(Zend_Db_Select $select, array $args) {
foreach($args as $argExpression => $argValue) {
$select->where($argExpression, $argValue);
}
}
...次に、このようなもので使用します...
whereX($select, array('price < ?' => $minimumPrice, 'price > ?' => $maximumPrice));
ただし、「OR」条件を使用する場合、またはより複雑な句を作成する場合は、その関数を微調整する必要があります。ますます複雑になるにつれて、その単純さは失われます...
それがZend標準パッケージに含まれていない理由だと思います-少なくとも現在は。