使用Doctrine DBAL,我有一些代码,插入一个新行到main
从绑定的形式值数据库$telephone_international
和$surname
。
之后做到这一点,它插入一个新的记录到数据库副本。 $app['dbs']['backup']
如果这是成功的,插入入口前面的main
数据库中获取其copied
值进行更新。 所述copied
列是一个时间戳,默认值是0,但下面的代码应该将其更改为当前时间。
$app['dbs']['main']->update('phonebook', array(
'mediated' => 'NOW()'
), array(
'telephone' => $telephone_international,
'surname' => $surname
));
但价值依然0000-00-00 00:00:00。 我不知道'NOW()'
被视为字符串。
正如我在上面的意见建议,这似乎是要走的路,因为这里所说:
http://doctrine-orm.readthedocs.org/en/2.0.x/cookbook/working-with-datetime.html
因此,尝试这样的:
$app['dbs']['main']->update('phonebook', array(
'mediated' => new \DateTime("now")
), array(
'telephone' => $telephone_international,
'surname' => $surname
));
我绊了同样的问题。 由于没有太多和DBAL本身没有很好的文档,我要发布我的解决方案。
有其指定的类型最后一个参数(在数据和identifcation数组的顺序合并 ;如同它们是在同一阵列中):
$app['dbs']['main']->update('phonebook', array(
'mediated' => new DateTime()
), array(
'telephone' => $telephone_international,
'surname' => $surname
), array(
'datetime',
PDO::PARAM_STR,
PDO::PARAM_STR
));