1

Im trying to add 12 seconds to a mysql datetime object via php.

My php code generates the following query: "UPDATE Stats SET Usage = 1970-01-01 00:00:12" however the query fails.

My php code is as follows:

public function UpdateTime($diffrence)
{
    $seconds = $diffrence / 1000;

    mysql_connect('localhost','user','pass') or die("Unable to select host");

    mysql_select_db('StatDB') or die("Unable to select database");

    $query  = "SELECT * FROM Stats";

    $result=mysql_query($query);

    $retVal = mysql_result($result,0,"Usage");

    $oldTime = new DateTime($retVal);

    $oldTime->modify('+'. $seconds .' seconds');

    $from = date("Y-m-d H:i:s", strtotime($oldTime->format('Y-m-d H:i:s')));

    $query2  = "UPDATE Stats SET Usage = $from";
    echo $query2;

    $result2=mysql_query($query2);

    mysql_close();
}

Does anyone how I can fix this?

Thanks

4

3 回答 3

1

尝试:

$query2  = "UPDATE `Stats` SET `Usage` = '$from'";

'Usage' 是 MySQL 中的保留字:

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

于 2013-03-09T23:29:38.087 回答
0

您可以使用一个查询来完成所有这些操作:

UPDATE Stats SET Usage = Usage + INTERVAL $seconds SECOND
于 2013-03-09T23:34:20.977 回答
0

这可能与您的查询中缺少引号有关。查看这个问题的答案。

UPDATE Stats SET Usage = '1970-01-01 00:00:12'

您应该将传递的日期时间值括在单引号中。

于 2013-03-09T23:22:17.910 回答