Zend Db Sql在哪里

时间:2013-06-07 13:39:53

标签: mysql zend-framework zend-framework2 zend-db zend-db-table

您好如何在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();

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

更改行

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

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

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