2012-09-27 3 views
0

POST로 내 테이블에 POST하려고하는데 예상치 못한 결과가납니다.POST하는 방법 테이블에 날짜

 mysql_select_db("kiracilar", $con); 
    $sql2 = "CREATE TABLE kira 
    (
     id INTEGER NULL AUTO_INCREMENT DEFAULT NULL, 
     KIRACI_ID INTEGER, 
     kira INTEGER, 
     odeme BOOL DEFAULT 0, 
     tarih DATE DEFAULT 0, 
     PRIMARY KEY (`id`) 
    )"; 
    mysql_query($sql2,$con) 

을 내 테이블을 만든 후 내가 그것을 게시하고 같이 내 테이블에 보내 : 내가 이런 식으로 내 테이블을 creat에

$date = $_POST["date"]; 
$query2= "INSERT INTO kira (KIRACI_ID,kira,odeme,tarih) VALUES ('$id','$kira','$odeme','$date')"; 

내가하는 일은 "2012-09 예를 들어 POST입니다 -27 "그러나 그것을 가져 가지 않을 것이다. 게시 할 때 아무 잘못이 없습니다. 내가 반향 할 때 게시 한 내용이 표시되기 때문입니다. 내 테이블에서 내 데이터베이스에 갈 때 "0000-00-00"과 같은 기본값을 보여줍니다. 그게 올바른 것 같아요 ... (그들이 제대로 작동하고있는 다른 것들은 보지 마십시오) 나는 php5, phpmyadmin을 사용하고 있습니다. 도움이된다면 도움이 될 것입니다.

일부 답변에 따르면 나는 얻는다. 나는 또한 이것을 더했다 :

 date_default_timezone_set('Europe/Istanbul'); 

if (date_default_timezone_get()) { 
    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />'; 
} 

if (ini_get('date.timezone')) { 
    echo 'date.timezone: ' . ini_get('date.timezone'); 
} 

잘 작동한다. 하지만 여전히 내 테이블에 내 데이트가 없습니다.

+0

'echo $ query2;'는 무엇을 출력합니까? –

+0

날짜 필드 및 날짜 문자열 형식? – chokrijobs

+0

'$ date = strtotime ($ _ POST [ "date"])'와 같이 삽입하기 전에 DATE에 문자열을 파싱하면 훨씬 좋을 것입니다. – Vishal

답변

2

를 쿼리하기 전에 다음을 추가

$date = date("Y-m-d", strtotime($date)); 
+0

다음과 같이 오류가 발생하는 경우 : 시스템의 시간대 설정에 의존하는 것이 안전하지 않습니다. bla bla. date_default_timezone_set()을 사용하십시오. – Mohtje61

+0

@ Mohtje61 [PHP 매뉴얼은 친구입니다] (http://php.net/manual/en/function.date-default-timezone-set.php) –

+0

시간대가 설정되어 있지 않습니다. http://php.net/manual/en/function.date-default-timezone-set.php (힌트 : PeerGoal.com의 답변 ;-)) – Geert

0

시도 :

$date = date('Y-m-d', $_POST["date"]); 
+0

date() [function.date] : 시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다. date.timezone 또는 date_default_timezone_set() 함수를 사용하려면 * 필수 항목입니다. 이러한 방법 중 하나를 사용 했는데도 여전히이 경고가 표시되는 경우 시간대 식별자의 철자가 틀릴 가능성이 가장 높습니다. 우리는 모두에게 대답했던 것처럼 – Mohtje61

2

당신은 FROM_UNIXTIMEstrtotime()을 사용할 수를 :

$date = strtotime($_POST["date"]); 
$query2= "INSERT INTO kira (KIRACI_ID,kira,odeme,tarih) VALUES ('$id','$kira','$odeme',FROM_UNIXTIME('".$date."'))"; 
+0

에 오류가 발생하는 대신 '3.0/DST'에 대해 '유럽/헬싱키'를 선택했습니다. 내 시간대를 설정하면 여전히 오류가 발생합니다. – Mohtje61

+0

알림을 일시 중지 할 수 있습니다. '$ date = @strtotime ($ _ POST [ "date"]); ' –

+0

오류는 없지만 여전히 테이블에 저장하지 않습니다 .. – Mohtje61

0

어떻게 날짜/시간 객체를 사용하는 방법에 대해?

$datetime = new DateTime($_POST["date"]); 
$date = $datetime->format('Y-m-d'); 
$query2= "INSERT INTO kira (KIRACI_ID,kira,odeme,tarih) VALUES ('$id','$kira','$odeme','$date')"; 
+0

thnx for answer. 오류가 없습니다. 하지만 여전히 내 테이블에 게시 날짜를 설정하지 않습니다. – Mohtje61

+0

phpmyadmin을 열고 수동으로 SQL을 입력 해 보았습니까? 'INSERT INTO kira (KIRACI_ID, kira, odeme, tarih) VALUES (1,2, true, '2012-09-27')' – jfmbrennan

관련 문제