2012-03-25 79 views
0

我將$ date設置爲當前時間,並且當我將其插入到數據庫中時,它顯示爲一個長十進制數。將日期()插入數據庫不起作用

ex。 0.000059642147117296

下面的代碼:

HTML

<form id="comments" action="<?=site_url('headquarters/scopeSummary')?>" method="POST"> 
     <textarea name="comment" cols="70" rows="5"></textarea> 
     <input type="hidden" name="scopeId" value="<?=$id?>" /> 
     <input type="hidden" name="user" value="<?=$user?>" /> 
     <br /> 
     Mark as important?<input type="checkbox" name="important" value="yes" /> 
     <input type="submit" value="Submit" name="submit" /> 
</form> 

PHP插入

if ($comment) { 
    $date = date('n/d/Y', time()); 
    $comQuery = $this->db->query('INSERT INTO scope_comments VALUES(NULL, "'. $scopeId .'", "'. $comment .'", "'. $user .'", "", "", '. $date .', "'. $gravity .'")'); 
} 

所有的值設置。他們不是問題。只有$日期搞亂了。我使用codeigniter和phpmyadmin。

+3

SQL注入。該代碼乞求它。 – 2012-03-25 16:49:12

+1

日期字段的結構是什麼? 'date','datetime','timestamp'?!? – rackemup420 2012-03-25 16:50:30

回答

2

您忽略引用日期值,因此係統計算出類似於2012年3月25日(您正在看到的0.00005642147117296)。

您還在以錯誤的格式指定日期。它必須是Y-m-d格式。

最後,機會是你的數據庫字段沒有被定義爲一個日期,所以一定要糾正該表的定義。

0

由於您使用的CURREN系統時間插入,這是迄今爲止容易有

INSERT INTO ... (datefield) VALUES (NOW()) 

和對數據庫產生自己的日期值。這爲您節省了必須在PHP中生成字符串,引用/轉義字符串,然後讓MySQL將該字符串解析爲自己的格式的麻煩。