0

次のエラーが発生し、問題が何であるかを理解できません。

エラー:SQL構文にエラーがあります。1行目の「order(orderid、customerid、productid、brand、model、price、amount、totalcost)V」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

//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

ORDERmysqlの再定義された単語であり、バッククォートで囲みます``。

テーブルまたは列の名前がmysqlの予約語と競合しないようにする必要があります。そうでない場合は、それらをバッククォートで囲む必要があります。

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

このような:

INSERT INTO `order`(...)(ALT Gr + 7)

これで問題が解決した場合は、ShaktiSinghにクレジットを与えてください。

于 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、..。。。

または、次のように予約済みのキーワードを角かっこで囲むことができます。

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 に答える