我有一个包含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)));
最佳答案
如果getParts在where子句的第二部分中省略了“ AND”,则您的首选$client->update(...)
将起作用。
我很确定您唯一的选择是:
使用第二个选项(可能最安全,具体取决于where子句的复杂程度)-或-
遍历返回的$ where并删除可能存在的前导“ AND”,“ OR”。
关于zend-framework - Zend框架:重用从Zend_Db_Select::getPart()返回的WHERE子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366749/