2011-08-30 132 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