将date()插入到无法正常工作的数据库中

时间:2012-03-25 16:46:11

标签: php insert phpmyadmin timestamp

我将$ date设置为当前时间,当我将其插入数据库时​​,它显示为长小数。

离。 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 .'")');
}

设置了所有插入的值。他们不是问题。只有$ date搞砸了。我使用codeigniter和phpmyadmin。

2 个答案:

答案 0 :(得分:2)

您忽略了引用日期值,因此系统正在计算类似于3/25/2012(您看到的0.00005642147117296)的内容。

您还以错误的格式指定日期。它必须是Y-m-d格式。

最后,很可能您的数据库字段未定义为日期,因此请确保更正该表定义。

答案 1 :(得分:0)

由于您正在使用当前的系统时间进行插入,因此

更容易实现
INSERT INTO ... (datefield) VALUES (NOW()) 

让数据库生成自己的日期值。这样可以省去必须在PHP中生成字符串,引用/转义字符串,然后让MySQL将该字符串解析为自己的格式的麻烦。

相关问题