INSERT INTO查询中的SQL错误

时间:2014-02-28 18:39:48

标签: php mysql sql syntax-error

我有这个错误,我似乎无法找到正确的答案。我用PHP编写它但在调试后我试图直接在phpMyAdmin上编写它。这是我的SQL查询:

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

这是我得到的错误:

 #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

在服务器上运行相应的php脚本时出现相同的错误。我出错的任何想法?

5 个答案:

答案 0 :(得分:6)

不要将列标识符包装在单引号中。使用刻度:

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

答案 1 :(得分:4)

问题是列标识符中的单引号。

使用“`”或不使用引号

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

正如tadman所提到的,只有在列标识符有空格或保留字

时才需要反引号

示例

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

答案 2 :(得分:2)

错误的引语:

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

'引号将事物变成字符串。您想要backticks `代替:

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

答案 3 :(得分:2)

由于没有人提到它,我会避免使用包含空格,特殊字符或保留字的列名。需要返回滴答的列名最终将导致难以追踪错误。

答案 4 :(得分:1)

当您执行INSERT INTO时,您不需要在列名称周围使用单引号。如果您正在插入列名称中包含空格的INTO列,则使用反引号来围绕列名称。

INSERT INTO users ( `First Name` , `Last Name` , pCity , etc ....