0

我收到以下错误,无法弄清楚问题所在。

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“订单(订单 ID、客户 ID、产品 ID、品牌、型号、价格、金额、总成本)V”附近使用正确的语法

//connect to database
$connection = mysql_connect("localhost","root","") or die ("Can't connect");
mysql_select_db("shoppingcart", $connection) or die ("Can't connect");

//get order id
$vol = mysql_query("SELECT orderid FROM ordertracking WHERE email='$email'");
while($volume=mysql_fetch_array($vol)) {
  $orderid = $volume['orderid'];
}
echo $orderid;
// add new order
$order = "INSERT INTO order (orderid, customerid, productid, brand, model, price, amount, totalcost) VALUES ('$orderid', '$customerid', '$productid', '$brand' , '$model', '$price', '$amount', '$totalcost')";
if (!mysql_query($order,$connection)) {
  die('Error: ' . mysql_error());
  echo "Sorry, there was an error";
}
echo "New order added" . "<br />";
mysql_close($connection);
4

4 回答 4

2

ORDER是一个mysql 保留字,用反引号 `` 括起来。

您不应该有与 mysql 保留字冲突的表或列名,否则您必须将它们括在反引号中。

$order = "INSERT INTO `order` (orderid, customerid,...
于 2012-06-30T11:41:33.527 回答
2

像这样:

插入“订单” (...) (ALT Gr+7)

如果这解决了问题,请将功劳归功于 Shakti Singh。

于 2012-06-30T11:44:51.800 回答
1

关键字 ORDER 是 sql 中的保留关键字。意味着你不能使用它

所以这会产生一个错误:

$order = "INSERT INTO order (orderid, customerid, productid, brand, model, price, amount, totalcost) VALUES ('$orderid', '$customerid', '$productid', '$brand' , '$model', '$price', '$amount', '$totalcost')";

插入订单

上述语句中的顺序应为反引号(如 shakti 所述),如

插入“订单”(订单号,......

或者您可以将保留关键字括在方括号中,例如

INSERT INTO [order] (orderid,......

有关更多信息,请检查此线程 堆栈溢出问题

于 2012-06-30T11:54:40.150 回答
0

另一件事是死后的任何代码都不起作用我的意思是:

if (!mysql_query($order,$connection)) {
 die('Error: ' . mysql_error());
 echo "Sorry, there was an error";}

这段代码

echo "Sorry, there was an error";

将不起作用。并使用此代码:

die('Error: ' . mysql_error());

由于安全原因,完全不推荐

于 2012-06-30T11:53:10.517 回答