Zend Framework:重用Zend_Db_Select :: getPart()返回的WHERE子句

时间:2010-12-06 13:16:14

标签: zend-framework select where-clause zend-db-select

我有一个包含WHERE的SELECT对象。

我可以使用getPart(Zend_Db_Select::WHERE)返回WHERE,这会返回如下内容:

array
    0 => string "(clienttype = 'agent')"
    1 => string "AND (nextpayment < (NOW() - INTERVAL 1 DAY))"

这个数组看起来很无用,因为我不能用它来做这个

$client->update(array("paymentstatus" => "lapsed"), $where);

甚至把它放到另一个SELECT对象中。有没有办法从SELECT对象获得更有用的WHERE语句表示?

由于

修改

到目前为止,我提出的最好的是

$where = new Zend_Db_Expr(implode(" ", $select->getPart(Zend_Db_Select::WHERE)));

1 个答案:

答案 0 :(得分:1)

您的第一个选择,$client->update(...)会起作用,如果 getParts省略了&#39; AND&#39;来自where子句的第二部分。

我非常确定你唯一的选择是:

  1. 使用您的第二个选项(可能最安全,具体取决于where子句的复杂程度) - 或 -
  2. 遍历返回的$,并删除前导&#39; AND&#39;,&#39; OR&#39;可能存在。