Вставка даты () в базу данных не работает - PullRequest
0 голосов
/ 25 марта 2012

Я устанавливаю $ 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 ]

2 голосов
/ 25 марта 2012

Вы забыли процитировать значение даты, поэтому система вычисляет что-то вроде 25.03.2012 (который вы видите 0.00005642147117296).

Вы также указали неправильную датуформат.Он ДОЛЖЕН быть в формате Y-m-d.

Наконец, есть вероятность, что поле вашей базы данных не определено как дата, поэтому обязательно исправьте это определение таблицы.

0 голосов
/ 25 марта 2012

Поскольку вы используете текущее системное время для вставки, гораздо проще иметь

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

и базу данных генерировать собственное значение даты.Это избавляет вас от необходимости генерировать строку в PHP, заключать в кавычки / экранировать строку и затем MySQL анализирует эту строку обратно в свой собственный формат.

...