【问题标题】:Inserting CURDATE() and CURTIME() in MySQL (PHP)在 MySQL (PHP) 中插入 CURDATE() 和 CURTIME()
【发布时间】:2013-01-25 10:26:33
【问题描述】:

如何在 MySQL 中插入 CURDATE()CURTIME()

我将它们分别插入到数据库表中的日期和时间字段中。

$query = "INSERT INTO `ordisp` (date, time, operator, status, completed, name, email) VALUES (CURDATE(), CURTIME(), '".$operator."', '".$status."', '".$complete."', '".$name."', '".$email."')";

为什么这不起作用?

【问题讨论】:

  • 什么不起作用?你有什么错误吗?可能是因为你的尾随,?或者可能是因为使用了保留字?
  • 请填写您在使用上述代码时遇到的错误

标签: php mysql date time


【解决方案1】:

您有语法错误 - 查询末尾的逗号:

'".$name."', '".$email."',)";
                         ^ here

删除它,所以完整的查询变成:

$query = "INSERT INTO `ordisp` (date, time, operator, status, completed, name, email) VALUES (CURDATE(), CURTIME(), '".$operator."', '".$status."', '".$complete."', '".$name."', '".$email."')";

为了将来的调试,你应该查看 MySQL 错误,它会给你一个问题的描述,例如未知的字段/表名或语法错误等。

【讨论】:

    【解决方案2】:

    datetime是mysql的保留字,因此应该用反引号引起来,以免与保留字冲突。

    "INSERT INTO `ordisp` (`date`, `time`, operator, ....
    

    【讨论】:

    • 我不这么认为。请参阅 MySql 官方文档中的 this。请在被否决之前更新您的答案。
    • datetime 不是保留字。见dev.mysql.com/doc/refman/5.5/en/reserved-words.html
    • 我使用的是 mysql 5.0,而不是 5.5。反引号修复了它。感谢用户!
    • @MrCode:没错,这些不再是mysql 5.5 中的保留字。我猜测他可能正在运行mysql 5.1
    • 由于语法错误,即使在 MySQL 5.0 上,单靠反引号也无法解决这个问题。奇怪 - 甚至 5.0 文档都说 datetime 没有保留:dev.mysql.com/doc/refman/5.0/en/reserved-words.html
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多