2012-03-25 38 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将该字符串解析为自己的格式的麻烦。