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

行を変更する

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

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

コード スニペットから、パラメーター (?) のプレース ホルダーを見逃していたことがわかります。クエスチョン マークが含まれています。既存のコード行と変更されたコードをクイック リファレンス用に言及しました。

于 2013-06-08T04:10:56.833 に答える
0

そこにはパラメーターがないため、配列である必要はありません。$lifetimeが安全な整数値であることがわかっていると仮定して、次を試してください。

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