2012-07-05 3 views
3

MySQL 데이터베이스를 DateTime 변수로 업데이트하려고합니다.mysql에서 datetime 변수 업데이트

$interval = 'P' . $days . 'DT' . $hours. 'H' . $minutes. 'M' . $seconds . 'S' ; 
$date = new DateTime("NOW"); 
$date->add(new DateInterval($interval)); 

이제 SQL 업데이트 : 나는 $date 변수를 var_dump 경우

$query = "UPDATE table 
SET table.table_date = '$date' "; 
mysql_query($query); 
mysql_query($query); 

, 그것은 올바른 속성을 보여줍니다

object(DateTime)#4 (3) { ["date"]=> string(19) "2012-07-05 20:04:14" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } 

하지만 그냥 실 거예요 삽입. $ date 대신 NOW()를 시도하면 완벽하게 작동합니다. 내 실수는 뭐니?

+2

당신은 누구의 사용을 억제하고있는 아마 곧 PHP에서 제거 될 것이다 PDO 또는 MySQLi 대신'mysql_' 확장을 사용해야합니다. 준비된 문을 사용하면이 문제도 해결됩니다. – Ryan

+0

왜 작동합니까? NOW()를 사용하지 않으시겠습니까? – Gntem

+1

은 날짜를 사용자 지정해야하며 지금은 지정하지 않아야합니다. – villeroy

답변

3

이 시도 : 당신은 문자열로 직접 개체를 삽입하려고하기 때문에 작동하지 않습니다

"UPDATE table SET table.table_date = '{$date->format('Y-m-d H:i:s')}'" 
+0

완벽하게 작동했습니다. 감사합니다. – villeroy

2

. 당신이해야 할 것은 먼저 가능한 날짜 객체를 문자열로 변환 할 수 있습니다 :

$futuredate = $date->format('Y-m-d H:i:s'); 
$query = "UPDATE table SET table.table_date = '$futuredate'";