【问题标题】:Adding seconds to mysql DateTime via php通过php将秒数添加到mysql DateTime
【发布时间】:2013-03-09 23:19:38
【问题描述】:

我试图通过 php 将 12 秒添加到 mysql 日期时间对象。

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

有没有人可以解决这个问题?

谢谢

【问题讨论】:

  • 能否提供错误信息?
  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“Usage = 1970-01-01 00:00:12”附近使用正确的语法
  • 哦,你必须用单引号引用日期。 '$from'
  • 另外,这会将所有行更新到你知道的那个时间......不仅仅是第一行,就像你选择的那样。
  • 回勾你的表格和字段名称。

标签: php mysql


【解决方案1】:

试试:

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

'Usage' 是 MySQL 中的保留字:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 不。 #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“Usage = '1970-01-01 00:00:12'' 附近使用正确的语法
    • 你需要更改这一行:$query2 = "UPDATE Stats SET Usage = '$from'";
    【解决方案3】:

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

    UPDATE Stats SET Usage = Usage + INTERVAL $seconds SECOND
    

    【讨论】:

      猜你喜欢
      • 2011-05-02
      • 2013-07-01
      • 2017-03-16
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2017-02-06
      相关资源
      最近更新 更多