2012-03-03 26 views
2

私はOpenCart 1.4.9でのクーポンについての報告をしなければならない数行のコードを持っていますが、私はこのエラーを乗り越えることはできません。奇妙なエラー

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 where coupon_id = 16' at line 1. 
$getcouponinfo1 = mysql_query("select * from order where coupon_id = $coupon_id") 
     or die(mysql_error()); 

残りのコードはhereです。

答えて

7

order良い名前ではありませんSQLのキーワードである、あなたはそのテーブル名を引用する必要があります。

select * from `order` where ... 
+1

このリンクを見てください。 SQLにはいくつかの予約語があります。 http://dev.mysql.com/doc/refman/5.0/en/reserved-words.htmlので、@ Matの回答に従う必要があります –

2

"order" IS MySQLの予約語...テーブル "order"を呼び出す必要がある場合は、SQLクエリのバッククォート( `)で囲む必要があります。

あなたのエラーメッセージがあなたがもともと(前あなたの質問を編集する)掲載クエリに関連するのではなく、このクエリへ:

select * from order where coupon_id = $coupon_id 

し、次の問合せへのご注文の値を合計

+0

(OPは全く質問を投稿しませんでした。私はそれを編集して最初のコピー/ペーストを作成しました) – Mat

+0

OPに謝罪しました。今は正しいクエリですので、害はありません –

-1

orderは予約語なので、テーブルのため

+0

本当に答えません。質問、それは? –

+0

@PranavHosangadiだから、この回答を削除して投票したほうがいいです。それを編集して、質問全体をアクティブにして、リストを汚染しないでください。 –

2

orderは予約済みです。

代わりに`order`を使用してください。

+2

バッククォート( ')二重引用符ではありません(") –

+0

@MarkBaker私は知っていますが、私はそれを最初に試しましたが、正しくエスケープする方法を見つけることができませんでした.... –

+0

@SergeyBenner:バッククイックを置くことができますが、それはちょっと複雑です(私の編集を参照してください) – Mat