有条件地使用Zend查询..如何构造?

时间:2010-11-03 15:52:24

标签: php sql zend-framework

我有这个选择声明:

  $select = $someMapper->getDbTable()
            ->select()
            ->where('someid = ?', $id)
            ->order(array($sort.' '.$order));

然而,我想要做的只是搜索campid IF $ id。我目前正在重复查询而没有找到适合我的地方。希望有更抽象的方式来做到这一点。

我是否仅限于自己构建sql?

谢谢!

编辑:我的新查询..

$select = $hitsMapper->getDbTable()
          ->select()
          ->where('campid = ? or 0 = ?', $id, $id)
          ->where('? LIKE ? or 0 = ?', $searchRow, $search, $search)
          ->order(array($sort.' '.$order));

第一个工作正常,但第二个没有。 $ searchRow和$ search分别默认为“ID”和“0”。

1 个答案:

答案 0 :(得分:0)

  $select = $someMapper->getDbTable()
            ->select()
            ->where('someid = ? or 0 = ?', $id, $id)
            ->order(array($sort.' '.$order));

如果id == 0那么你将得到所有结果,我想你想要这个。我不确定我在zend中的实现语法然后如果失败你可以自由编辑我的答案。