1

ZF2 の Db\SQL を使用して SQL オブジェクトを構築しようとしています。

以下は私のコードです。

    $sql = new Sql($this->database);
    $predicate = new Where();
    $query = $sql->select();
    $query->from('sessions');
    $query->columns(array('sessiondata'));
    $query->where($predicate->equalTo('sessionid', $sessionId));
    $query->where($predicate->greaterThan('expire', new Expression("NOW()")));

ご覧のとおり、私はセッション読み取りを行っています。

[last] where プロパティが原因で、実行時に準備が失敗しています。

$query->where($predicate->greaterThan('expire', 'NOW()'));

残念ながら、ZF2 は失敗した理由を教えてくれません。Statement could not be executed

上記で何が間違っていますか?

準備は可能な限り文字通りに物事を解釈していると思います。したがって、mysql関数の存在Now()が原因で失敗しています。どうすればこれを乗り越えることができますか?

編集:実際には、失敗しているのは実行です。

4

1 に答える 1

4

最後のクエリをデバッグしてみてください。そのためにmysqlクエリロガーを使用できます。my.cnf (または my.ini) で次のように設定します。

ログ = "C:/genquery.log"

また

ログ = "/var/log/mysql/error.log"

システムによります。

次に、mysql サーバーをリセットすると、実際に何が起こったのかを分析できます。

于 2012-12-30T17:32:09.427 に答える