您好如何在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();
答案 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'));
从代码片段中可以看出,您错过了参数(?)的占位符,包括问号,我提到了现有代码行和修改后的代码以供快速参考