2011-08-30 76 views
1

只是想询问是否有这样做(使用FROM_UNIXTIME表达)的easyer方式:Zend框架表插入MySQL的表达

$table = $this->getDbTable(); 
$db = $table->getAdapter(); 

$table->insert(array(
    'date'=>new Zend_Db_Expr($db->quoteInto('FROM_UNIXTIME(?)', time())), 
    'name'=>$name, 
    'password'=>'', 
    'passworddate'=>'0000-00-00 00:00:00' 
)); 

我的意思是这是一个很大的开销只是使用FROM_UNIXTIME。我的选择看起来不太干净。

+1

为什么不存储时间戳,因为它是。日期列的类型是int(11)? –

+1

因为我想拥有使用mysql时间函数的可能性。 – Johni

回答

0

只需使用MySQL的NOW()函数,除非您的应用程序和数据库服务器之间有时差。

'date' => new Zend_Db_Expr('NOW()'), 

如果应用程序服务器时间优先,为什么不干脆试试

'date' => date('Y-m-d H:i:s'), 
+1

“除非您的应用程序有时间差异”是的,这就是我使用PHP函数的原因。我希望通过php完成所有的时间事情,以避免使用不同的数据库时间/时区造成的问题。 – Johni

+0

@Johni够了。我已经更新了我的答案 – Phil

+0

是的,对于当前问题的好主意,但我仍然在考虑这种不必要的复杂解决方案,它似乎是插入mysql表达式与参数的唯一方法。另一个问题,我现在问mysqlf是,如果我得到相同的时间,当我用UNIX_TIMESTAMP后来回顾它(当mysql服务器是在不同的时区)。 – Johni