我有这个错误,我似乎无法找到正确的答案。我用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脚本时出现相同的错误。我出错的任何想法?
答案 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 ....