使用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
));
但价值仍为00:00:00。我想知道'NOW()'
是否被视为一个字符串。
答案 0 :(得分:1)
正如我在上面的评论中所提出的,这似乎是要走的路,如下所述:
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
));
答案 1 :(得分:0)
我偶然发现了同样的问题。由于DBAL本身没有太多也没有好的文档,我将发布我的解决方案。
最后一个参数指定了类型(按照数据和标识数组的顺序合并;就像它们在同一个数组中一样):
$app['dbs']['main']->update('phonebook', array(
'mediated' => new DateTime()
), array(
'telephone' => $telephone_international,
'surname' => $surname
), array(
'datetime',
PDO::PARAM_STR,
PDO::PARAM_STR
));