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

我在上面做错了什么?

我认为 prepare 正在尽可能地解释这个东西,因此 mysql 函数的存在Now()导致它失败。我该如何度过这个难关?

编辑:实际上,这是失败的执行。

4

1 回答 1

4

尝试调试最终查询。您可以为此使用 mysql 查询记录器。在 my.cnf(或 my.ini)中,您设置:

日志 = "C:/genquery.log"

或者

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

取决于系统。

然后重置mysql服务器,你就可以分析到底发生了什么。

于 2012-12-30T17:32:09.427 回答