2014-02-28 4 views
1

이 오류가 발생하여 올바른 대답을 찾지 못하는 것 같습니다. PHP로 작성하고 있지만 디버깅 후 phpMyAdmin에서 직접 작성하려고했습니다. 여기 내 SQL 쿼리입니다 :INSERT INTO 쿼리에서 SQL 오류가 발생했습니다.

INSERT INTO users ('fName' , 'lName' , 'pCity' , 'cue' , 'email' , 'pass' , 'bDate') VALUES ('Me', 'You', 'Sofia', 'adf', '***', '***', '02/02/2010') 

그리고 여기에 내가 오류의 : 서버에서 해당 PHP 스크립트를 실행하는 경우

#1064 - 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 ''fName' , 'lName' , 'pCity' , 'cue' , 'email' , 'pass' , 'bDate') VALUES ('Kali' at line 1 

나는 같은 오류가 발생합니다. 내가 잘못한 어떤 생각?

답변

4

문제는 열 식별자의 따옴표입니다.

어느 것이 사용 "`"또는 tadman 언급, 역 따옴표 만 필요로 열 식별자는 공백이나 예약어

이있는 경우

INSERT INTO users (fName , `Last Name` , pCity , cue , email , pass , bDate) VALUES ('Me', 'You', 'Sofia', 'adf', '***', '***', '02/02/2010') 
예를 따옴표

INSERT INTO users (fName , lName , pCity , cue , email , pass , bDate) VALUES ('Me', 'You', 'Sofia', 'adf', '***', '***', '02/02/2010') 

를 사용하지 않는

+2

역 따옴표은 ​​[예약 된 키워드]와 열 공백이 이름, 특수 문자, 또는 갈등 (http://dev.mysql.com/doc/refman/5.6/en/reserved-words에 필요합니다. html). – tadman

+2

처음에는 공백, 특수 문자 또는 예약 키워드를 사용하는 것은 나쁜 습관이라고 말할 수 있습니다. –

6

열 식별자를 작은 따옴표로 묶지 마십시오. 사용 틱 :

INSERT INTO users (`fName` , `lName` , `pCity` , `cue` , `email` , `pass` , `bDate`) 
VALUES ('Me', 'You', 'Sofia', 'adf', '***', '***', '02/02/2010') 
2

잘못된 인용 :

INSERT INTO users ('fName' , 'lName' , 'pCity' , etc... 
        ^-----^-- etc... 

' 따옴표를 문자열로 일을 설정합니다. 대신 backticks` 원하는 :

INSERT INTO users (`fName` , `lName` , `pCity` , etc... 
2

아무도 언급하지 않았으므로 공백, 특수 문자 또는 예약어가있는 열 이름을 사용하지 마십시오. 다시 틱이 필요한 열 이름은 결국 오류를 추적하기 어렵게 만듭니다.

1

INSERT INTO를 수행 할 때 열 이름을 작은 따옴표로 묶을 필요가 없습니다. 열 이름에 공백이있는 INTO 열을 INSERT하는 경우 열 이름을 둘러싸 기 위해 백틱을 사용합니다.

INSERT INTO users (`First Name` , `Last Name` , pCity , etc .... 
관련 문제