我收到以下错误,无法弄清问题是什么。
错误:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的'order(orderid,customerid,productid,brand,model,price,amount,totalcost)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);
答案 0 :(得分:2)
ORDER
是一个mysql resered word用反引号“`括起来。
你不应该有一个表或列名与mysql保留字冲突,否则你必须将它们包含在反引号中。
$order = "INSERT INTO `order` (orderid, customerid,...
答案 1 :(得分:2)
像这样:
INSERT INTO`order`(...) (ALT Gr + 7)
如果这样可以解决问题,请将信用分给Shakti Singh。
答案 2 :(得分: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,......
或者您可以将保留的关键字括在方括号中,例如
INSERT INTO [order](orderid,......
有关更多信息,请查看此主题 stack overflow question
答案 3 :(得分: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());
由于安全原因,根本没有被推荐