2011-06-02 65 views
6

這是我的CodeIgniter模型中的Database_update_entry函數,它在成功提交表單時執行。illegal 0000-00-00 00:00:00使用codeigniter通過php發送到mysql的時間戳

<?php 
    function update_entry(){ 
     $data = array(
      'sl' => $this->input->post('item_sl'), 
      'item_name' => $this->input->post('item_name'), 
      'img_url' => $this->input->post('img_url'), 
      'sound_url' => $this->input->post('sound_url'), 
      'price' => $this->input->post('price'), 
      'unit' => $this->input->post('unit'), 
      'timestamp' => time(), 
     ); 
     echo "current time: ". time(); 
     $this->db->update(MY_TABLE_NAME, $data); 
    } 
?> 

數據庫查詢被罰款執行....但時設置到mysql表的時間 0000-00-00 00:00:00<?php echo time() ?>聲明顯示瀏覽器....這是一個有效的UNIX時間戳...你可以check the timestamp validity here

這裏是成功的update_query http://s3.amazonaws.com/awesome_screenshot/658523?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2&Expires=1307020816&Signature=AncPjnzG9p9QTX7zebZp7c9teB0%3D

我在做什麼錯後從MySQL表中獲取數據的表的截圖???我怎麼能通過一個法律時間戳從我的PHP到MySQL? [p.s.我檢查了,在我的MySQL表的時間戳字段是一個時間戳字段]

回答

5

MySQL的timestamp場接受日期yyyy-mm-dd H:i:s格式,所以你要約會傳成這種格式不在UNIX時間戳

,而不是這個

'timestamp' => time() 

使用

'timestamp' => date('Y-m-d H:i:s') 

如果你真的想UNIX time stamp改變字段類型存儲CHAR

+0

我一定要指定任何CHAR ** **長度爲現場??? – 2011-06-11 07:57:14

+0

@syedrakib:CHAR(11)可以用於時間戳字段 – 2011-06-11 08:02:03

+0

感謝兄弟:) – 2011-06-11 08:09:13

3

使用date('Y-m-d H:i:s', time());

;)

3

您需要提供時間戳字符串,而不是一個整數。嘗試:

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

我認爲mysql有能力將UNIX時間戳轉換爲mySQL時間戳,如果UNIX時間戳添加到時間戳字段 – 2011-06-11 07:59:00

2

格式時間:date('Y-m-d H:i:s', time())

+0

我以爲mysql有將UNIX時間戳添加到時間戳字段時,將UNIX時間戳轉換爲mySQL時間戳的能力....謝謝:) – 2011-06-11 08:08:05