Zend 1.11.X框架多个Wheres?

时间:2011-11-08 18:56:33

标签: php zend-framework

是否可以以我可以这样的方式使用Zend_Db_Select where / whereOr:

$select->whereOr('field1 = ? field2 = ?', array($value1, $value2));
or
$select->whereOr('field1 = ? field2 = ?', $value1, $value2);

这比记住自己逃避变量要容易得多。

2 个答案:

答案 0 :(得分:1)

这取决于具体情况,例如,如果您有两个条件,并且每个条件都有一个OR。

像:

WHERE (col = $someValue OR col = $otherValue) OR (col2 = $thirdValue AND col2 = $fourthValue)

那些必须手动完成。我喜欢这样做:

$orWhere = array(
    "(col = {$someValue} OR col = {$otherValue})",
    "(col2 = {$thirdValue} AND col2 = {$fourthValue})"
);

$select->where(implode(' OR ', $orWhere));

在这些情况下,这对我来说是一个非常有用的工作,因为Zend_Db_Select的行为如何将括号中的每个where()orWhere()封装起来。

答案 1 :(得分:0)

你可以这样做:

$select->where('field1 = ?', $value1)->orWhere('field2 = ?', $value2);