【问题标题】:PHP: INSERT Into Database Using MySQL [duplicate]PHP:使用 MySQL 插入数据库 [重复]
【发布时间】:2013-11-06 03:17:46
【问题描述】:

我在我的网站上运行这个:

$PlaceOrder = " Insert INTO Order VALUES ( '$CustomerID' , '$ItemID' , '$Quantity' , '$Date' ) ";   
    $result = mysql_query ($PlaceOrder);
    if (!$result)
    {
        die('Invalid query: ' . mysql_error());
    }

但是当我这样做时,我不断收到以下错误消息:

Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order VALUES ( '3' , '1' , '12' , '11/05/2013' )' at line 1

我现在真的不知道该怎么做,我尝试指定列,但也没有用。我对这一切都很陌生,我正在根据手册中的内容执行此操作。

【问题讨论】:

  • 我需要问一下;这是您的实际代码Insert INTO Table VALUES 吗?您是否使用Table 作为您的表名?
  • 什么是表结构?如果您的日期列是日期,则应为 2013-11-05
  • 先是Table,现在是Order 下定决心。

标签: php mysql insert


【解决方案1】:

让我们再看看你的错误信息:

[...] the right syntax to use near'OrderVALUES

它首先抱怨的是Order。这就是您从问题中替换 Table 的内容。所以让我们假设这是您的实际表名。

它也是一个保留字。用作列名或表名标识符时,将保留字括在反引号中。

【讨论】:

  • 哈哈我没有,那是保留字。我放了一个'。在“订单”之前,就成功了!
【解决方案2】:

Order is Key word 用另一个词代替 Order

【讨论】:

  • 其实OP不用换词,用反引号包起来就行了。
【解决方案3】:

您确定只有 4 列并且它们的顺序与您在查询中指定的顺序相同吗?

按照您的建议尝试添加列名,例如:

$PlaceOrder = "INSERT INTO Table (customer, item, quantity, date) VALUES ('$CustomerID', '$ItemID', '$Quantity', '$Date')";

这对你有帮助吗?

【讨论】:

    【解决方案4】:

    首先,您应该始终指定列,因为您永远不知道何时必须向表中添加新列,如果您没有这样做,旧查询将开始做一些混乱的事情。

    话虽如此,您确定这些是与表匹配的正确列数据类型吗? 另外,请确保日期格式有效,您应该使用 Y-m-d。你会发现更多信息here

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 2020-03-02
      • 1970-01-01
      • 2019-12-05
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 2017-02-10
      相关资源
      最近更新 更多