2012-03-03 3 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

"주문"IS MySQL 예약어 ... 테이블 "주문"을 호출해야하는 경우 SQL 쿼리에서 백틱 (`)으로 묶어야합니다.

귀하의 오류 메시지가 원래 (이전 질문을 편집에) 게시 된 쿼리에 관한 것이 아니라,이 쿼리에 :

select * from order where coupon_id = $coupon_id 

다음과 같은 질의에 당신은 주문 금액 합계

+0

(OP는 검색어를 전혀 게시하지 않았고 편집하여 첫 번째 사본/붙여 넣기를 망쳤습니다.) – Mat

+0

OP에 사과하십시오. 이제 올바른 검색어이므로 아무런 해를 끼치 지 않았습니다 –

-1

order가 예약어이기 때문에, 테이블

+0

정말 대답하지 않습니다. 질문, 그렇지? –

+0

@PranavHosangadi 그래서,이 답변을 삭제하는 것이 더 낫습니다. 질문을 적극적으로 편집하고 목록을 오염시키지 않으시겠습니까? –

2

order은 예약어입니다.

대신 `order`을 사용해야합니다.

+2

큰 따옴표가 아닌 backticks (") –

+0

@MarkBaker 나는 알고 있지만 backticks는 텍스트를 강조하기 위해 SO에서 예약되어 있습니다. 단순히 강조 표시 할 것입니다. 먼저 시도했지만 올바르게 탈출 할 수있는 방법을 찾지 못했습니다 .... –

+0

@SergeyBenner : backticks를 넣을 수 있지만 약간 복잡합니다. 내 편집 참조) – Mat

관련 문제