ZF2 Zend\Db使用Mysql表达式插入/更新(Zend\Db\Sql\Expression?)

Ale*_*oss 8 php zend-db zend-framework2

有没有办法通过Zend\Db和/或TableGateway insert()/ update()语句在ZF2(2.0.0beta4)的当前版本中包含NOW()等MySQL表达式?

以下是邮件列表中的相关帖子,但尚未得到解答:http://zend-framework-community.634137.n4.nabble.com/Zend-Db-Expr-and-Transactions-in-ZF2- DB-td4472944.html

似乎ZF1使用了类似的东西:

    $data = array( 
        'update_time'   => new \Zend\Db\Expr("NOW()") 
    ); 
Run Code Online (Sandbox Code Playgroud)

通过Zend\Db\Sql\Expression查看后我尝试了:

    $data = array(
        'update_time' => new \Zend\Db\Sql\Expression("NOW()"),
    );
Run Code Online (Sandbox Code Playgroud)

但是得到以下错误:

Catchable fatal error: Object of class Zend\Db\Sql\Expression could not be converted to string in /var/www/vendor/ZF2/library/Zend/Db/Adapter/Driver/Pdo/Statement.php on line 256
Run Code Online (Sandbox Code Playgroud)

按照这里的建议:http://zend-framework-community.634137.n4.nabble.com/ZF2-beta3-Zend-Db-Sql-Insert-new-Expression-now-td4536197.html我目前正在设置使用PHP代码约会,但我宁愿使用MySQL服务器作为日期/时间的单一事实来源.

    $data = array(
        'update_time' => date('Y-m-d H:i:s'),
    );
Run Code Online (Sandbox Code Playgroud)

谢谢,我感谢任何输入!

Joe*_*eng 11

Zend_Db_Sql_Expression现在适用于我.

$data = array(
    'update_time' => new \Zend\Db\Sql\Expression("NOW()"),
);
Run Code Online (Sandbox Code Playgroud)


Bob*_*oby 2

我不确定他们是否在最新的更新中修复了这个问题,但这是一个已知的错误,即使他们说它已修复,对我来说修复后它仍然不起作用。