2012-03-25 4 views
0

$ date를 현재 시간으로 설정하고 데이터베이스에 삽입하면 긴 십진수로 나타납니다.데이터베이스에 date()를 삽입하면 작동하지 않습니다.

ex.

HTML

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

모든 값이 설정되어 삽입되는

<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 : 0.000059642147117296

여기에 코드입니다. 그들은 문제가 아닙니다. $ 날짜 만 엉망입니다. 나는 codeigniter와 phpmyadmin을 사용하고 있습니다.

+3

SQL 주입. 그 코드는 그것을 요구합니다. –

+1

날짜 필드의 구조는 무엇입니까? 'date','datetime','timestamp'?!? – rackemup420

답변

2

날짜 값을 인용하지 않으므로 시스템에서 2012 년 3 월 25 일과 같은 것을 계산합니다 (이는 0.00005642147117296입니다).

또한 잘못된 형식으로 날짜를 지정하고 있습니다. 반드시 Y-m-d 형식이어야합니다.

마지막으로 데이터베이스 필드가 날짜로 정의되지 않았을 가능성이 있으므로 해당 테이블 정의를 수정해야합니다.

0

당신은 삽입에 대한 CURREN 시스템 시간을 사용하고 있기 때문에, 그것은

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

이 데이터베이스가 자신의 날짜 값을 생성하기가 훨씬 쉬워에 의해입니다. 이렇게하면 PHP에서 문자열을 생성해야하는 번거 로움을 덜어주고 문자열을 인용/이스케이프 한 다음 MySQL에서 해당 문자열을 자체 형식으로 구문 분석하도록 할 수 있습니다.

관련 문제