我使用doctrine DBAL 2.5.2和MySql 5.5
我创建了一个timestamp
类型和ON UPDATE CURRENT_TIMESTAMP
额外字段的字段。
当我从phpMyAdmin更改内容时,字段会更新并更改为当前时间戳,但是当我从Doctrine / dbal更新内容时,没有任何事情发生。我的意思是一切都有效,除了on update
。
我使用$app['db']->update('mytable', $data, array('my_id' => $id);
如何从doctrine / dbal代码运行on update
触发器?
编辑:
我添加此代码以检查我是否尝试更改日期。
if (isset($data['updated'])) unset($data['updated']);
答案 0 :(得分:1)
date
的{{1}}字段,因为空字符串会导致零。我已经设置了一个测试项目,它运行良好:
$data
表:
$connectionParams = ...;
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
$conn->update('user', array('name' => 'X3'), array('name' => 'X2'));
一些测试数据:
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` text NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
您可以重新测试并确保日期字段中的所有参数都正确吗?