Zend_Db_Expr NOW()不起作用?

时间:2011-02-08 09:42:05

标签: php zend-framework zend-db

我正在尝试简单的插入:

$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:没关系,我搞定了。问题完全不同。

1 个答案:

答案 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);