테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문을 입력하면 에러가납니다. 채택완료

꾸냥꾸냥 7년 전 조회 2,114

우와 이걸로 2~3일은 날려버렸는데 ㅠㅠ 

 

위 이미지처럼 phpMyAdmin 에서 저 버튼으로 쿼리문을 만들면 잘 검색이 됩니다. 

 

 

근데 에디터에서 제가 직접 쿼리를 입력하면 에러가 납니다...

 

에디터는 aptana 를 사용중이고, 

 

    $str = "SELECT * FROM `erp_bank` WHERE 1"; // phpMyAdmin 에서 복사함 
    $str = "SELECT * FROM 'erp_bank' WHERE 1"; // 직접 타이핑함
    

이건 텍스트로 복사한건데 딱 봐도 ' 모양이 다르잖아요. 

 

aptana가 문제일까요  phpMyAdmin 이 문제일까요 아니면 다른 이유가 있는건가요?

 

 

 

위 이미지는 에러메시지 입니다만, 문법 에러라는건데 직접 키보드로 타이핑하면 계속 저래요 ㅠㅠ 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
7년 전

mysql 에서 [테이블 이름], [칼럼명]  등은 ` (그레이브 액센트) 로 묶어서 표기합니다.

데이터를 나타날 때 문자열에는 ' (따옴표) 로 묶습니다.

[테이블 이름], [칼렴명]을 묶을 때, ` (그레이브)를 보통은 생략해도 되지만,

mysql 예약어랑 겹치는 경우에 쓴다고 보면 됩니다. (drop, inner, and, case, ..)

 

몇가지 예입니다.

 

select col1, col2 from test_table (O)

select col1, col2 from test_table where col2 = 'abc' (O) 따옴표 사용

select `col1`, `col2` from `test_table` (O) (그레이브 사용)

insert into `test_table`(`col`, `col2`) values (3, 'abc') (O) 컬럼, 테이블에는 그레이브, 문자열 데이터에는 따옴표)

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

꾸냥꾸냥
7년 전
헉... `이름이 그레이브 액센트인걸 처음 알았습니다;;;;
예시까지 ㅎ 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
7년 전

where 절안이나 select 에서 TEXT형을 표시할때는 ' (작은따옴표로) 감싸는게 맞는데,  테이블명이나 컬럼명은 TEXT형이 아니기 때문에 ` 이걸로 감싸줘야 합니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

꾸냥꾸냥
7년 전
헉.. 글쿤요.. 그래도 몇년은 웹쪽 하고있었는데 이걸 이제 아네요;; ㅠㅠ 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

d
7년 전

`  과  ' 이것은 다른 겁니다.  `  이것은 키보드 숫자 1앞에 있는 겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

꾸냥꾸냥
7년 전
예 저도 방금 알아냈긴 한데요... 저런 문자열 계열은 작은따옴표로 감싸는게 아니었나요??
예전엔 분명 그냥 작은따옴표로 했었는데....

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인