2012-01-09 11 views
1

PHP에서 SQL로 날짜와 시간을 저장하고 싶습니다. PHP에서 SQL까지 날짜/시간을 저장

INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username) 
      value (:headline, :text, :date, :rating, :product_id, :username) 

그리고 내 .PHP 페이지

, 나는 $_SERVER['REQUEST_TIME']를 사용하여 현재 날짜와 시간을 전화 : 여기 (클래스 내 메소드에 있음) 새 레코드를 삽입하는 SQL 문입니다. 하지만 여전히 "잘못된 datetime 값"오류가 나타납니다. 데이트를하려면 무엇을 사용할 수 있습니까?

답변

2

그것은 있습니까 : MySQL의이 자사의 타임 스탬프가 문제의 PHP를 서버와 동기화했다고 가정

, 당신은 또한 단지 MySQL의 현재 타임 스탬프 기능을 사용할 수 있습니다 정확한 요청 시간이 될까요? 당신의 인생을 더 쉽고 간단하게 사용할 수 있습니다 :

INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username) 
      value (:headline, :text, now(), :rating, :product_id, :username) 

MySQL은 입력 한 내용이 테이블에 기록되는 즉시 현재 날짜를 삽입합니다.

6

귀하의 타임 스탬프를 생성 할 수 있습니다

$timestamp = date('Y-m-d H:i:s'); 

이 MySQL의 타임 스탬프와 날짜 형식을 모방해야한다. (NOW

) 또는 CURRENT_TIMESTAMP 또는 CURRENT_TIMESTAMP()

+3

-1? downvoter가이 대답의 문제점을 설명 할 수 있습니까? –

0

그것은 단지 추측이지만 $ _SERVER [ 'REQUEST_TIME']은 유효한 datetime 형식이 아닌 float를 반환합니다. 현재 시간을 필요로하는 경우

0

당신이 그런 식으로 작업을 수행 할 수 있습니다

INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username) 
INSERT INTO tbl_reviews ('$headline', '$text', CURDATE(), '$rating', '$product_id', '$username'); 
0
date_default_timezone_set('US/Eastern'); 
$cur_date=date("Y-m-d"); 
0

당신은 자동으로 포맷 된 타임 스탬프를 얻기 위해 SQL의 자신의 CURRENT_TIMESTAMP 값을 사용할 수 있습니다.

$ _SERVER [ 'REQUEST_TIME']의 경우 time() 또는 microtime() 대신 사용할 수 있습니다.

언급 한 바와 같이 REQUEST_TIME과 time() 및 microtime()은 UNIX timestamp을 반환합니다. 이는 기본적으로 DATETIME 필드와 동일한 형식이 아닌 UNIX 신기원 이후 경과 된 초 수입니다.

+0

여기에 관계가 없을 가능성이 높지만 $ _SERVER [ 'REQUEST_TIME']은 그 순간 (마이크로 시간 및 시간)에 대한 요청이 아닌 요청 시작의 타임 스탬프를 반환한다는 점도 주목할 가치가 있습니다. – MichD

관련 문제