我正在尝试简单的插入:
$data = array
(
'whatever' => 'nevermind',
'etc' => 'more data',
'updated_on' => new Zend_Db_Expr('NOW()')
);
$this->getDbTable()->insert( $data );
所有内容都已正确插入,但 updated_on 为空。难道我做错了什么?我理解从我说的内容确定问题可能并不容易,但也许你可以建议我至少可以调试一下这个问题?提前致谢
P.S。数据库是mySQL,列是DATETIME,如果我连接到mySQL并手动尝试插入或更新NOW(),它确实有效。
更新
使用Profiler,我得到以下输出:
INSERT INTO `db_table` (`column1`, `column2`, `column3`, `column4`, `column5`, `column6`, `column_datetime`, `column7`) VALUES (?, ?, ?, ?, ?, ?, NOW(), ?)
Array
(
[1] => column1 data
[2] => column2 data
[3] => column3 data
[4] => column4 data
[5] => column5 data
[6] => column6 data
[7] => column7 data
)
据我所知,这里的一切都很好:\
Update2:没关系,我搞定了。问题完全不同。
答案 0 :(得分:7)
仅根据您发布的代码,这应该有效。
既然没有,您应该使用profiler 调试查询:
$db = $this->getDbTable();
$adapter = $db->getAdapter();
$adapter->getProfiler()->setEnabled(true);
$data = array
(
'whatever' => 'nevermind',
'etc' => 'more data',
'updated_on' => new Zend_Db_Expr('NOW()')
);
$db->insert( $data );
print $adapter->getProfiler()->getLastQueryProfile()->getQuery();
print_r($adapter->getProfiler()->getLastQueryProfile()->getQueryParams());
$adapter->getProfiler()->setEnabled(false);