0

嗨,我怎样才能在 zf2 中使用 zend\db\sql 进行这样的查询?

询问:

SELECT * FROM table WHERE field = $field AND data > SUBDATE(NOW(), INTERVAL 1 DAY)

在 ZF2

$select = $this->sql->select();
$select->from(self::MYTABLE)
           ->where(array('fiels' => $field))
           ->where(array('data > ' => 'SUBDATE(NOW(), INTERVAL '.$lifetime.' SECOND'));
$statement = $this->sql->prepareStatementForSqlObject($select);
return $statement->execute()->current();
4

2 回答 2

0

那里没有参数,所以它不需要是一个数组。假设您知道$lifetime是一个安全的整数值,请尝试:

 ->where('data > SUBDATE(NOW(), INTERVAL '.$lifetime.' SECOND)');
于 2013-06-07T14:00:41.757 回答
0

换行

->where(array('data > ' => 'SUBDATE(NOW(), INTERVAL '.$lifetime.' SECOND'));

->where(array('data > ?' => 'SUBDATE(NOW(), INTERVAL '.$lifetime.' SECOND'));

从代码片段中可以看出您错过了参数(?)的占位符,包括一个问号,我提到了现有的代码行和修改后的代码以供快速参考

于 2013-06-08T04:10:56.833 回答