在SQL语法和PHP中获取错误

时间:2012-06-30 11:39:42

标签: php sql database

我收到以下错误,无法弄清问题是什么。

错误:您的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);

4 个答案:

答案 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());
由于安全原因,

根本没有被推荐