1

PHP経由でmysqlのdatetimeオブジェクトに12秒を追加しようとしています。

私のphpコードは次のクエリを生成します:「UPDATE Stats SET Usage = 1970-01-01 00:00:12」しかし、クエリは失敗します。

私のphpコードは次のとおりです。

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();
}

どうすればこれを修正できますか?

ありがとう

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 = '1970-01-01 00:00:12'

渡された日時の値は一重引用符で囲む必要があります。

于 2013-03-09T23:22:17.910 に答える
0

単一のクエリを使用して、そのすべてを実行できます。

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