在mysql中更新datetime变量

时间:2012-07-05 18:11:40

标签: php mysql datetime

我正在尝试使用DateTime变量更新我的MySQL数据库。

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

现在SQL更新:

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

如果我var_dump $date变量,它会显示正确的属性:

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

但它不会被插入。如果我尝试NOW()而不是$ date,它可以完美地运行。我的错是什么?

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:2)

它无法正常工作,因为您试图将对象直接插入字符串中。您需要做的是首先将对象转换为可用的日期时间字符串:

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