zend-framework - Zend框架:重用从Zend_Db_Select::getPart()返回的WHERE子句

标签 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)));

最佳答案

如果getParts在where子句的第二部分中省略了“ AND”,则您的首选$client->update(...)将起作用。

我很确定您唯一的选择是:


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

关于zend-framework - Zend框架:重用从Zend_Db_Select::getPart()返回的WHERE子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366749/

相关文章:

php - Zend DB 中带有 'like' 子句的 Order 子句

php - Zend_Auth_Adapter_DbTable 和 PHP crypt

eclipse - DLTK 索引正在进行中

mysql - mysql 查询中包含更多表的日期的 if 条件

c# - 更新 INNER JOIN WHERE 条件

MySQL LEFT JOIN NULL 值

zend-framework - 在 Zend Autoloader 中找不到 PHPExcel 类

javascript - jQuery:使用 select() 而不是 change() 选择 <option> 内容

mysql - 需要每个值类型的行数

php - MySQL - 如何从 SELECT 查询中获取多个结果