2012-03-25 9 views
0

$ dateを現在の時刻に設定し、データベースに挿入すると、それは長い10進数で表示されます。データベースに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インジェクション。そのコードはそれを求める。 –

+1

日付フィールドの構造は何ですか? 'date'、' datetime'、 'timestamp'?!? – rackemup420

答えて

2

あなたは日付の値を引用しないので、システムは2012年3月25日のようなものを計算しています(これはあなたが見ている0.00005642147117296です)。

また、日付を間違った形式で指定しています。それはY-m-d形式である必要があります。

最後に、データベースフィールドが日付として定義されていない可能性がありますので、必ずそのテーブル定義を修正してください。

0

あなたが挿入するためのカレンシステム時刻を使用しているので、それは

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

を持っており、データベースは、独自の日付値を生成持ってはるかに簡単です。これにより、PHPで文字列を生成し、文字列を引用/エスケープした後、MySQLがその文字列を解析して独自の形式に戻すという手間が省けます。

関連する問題