插入时Mysql抛出错误

krr*_*r25 0 php mysql sql sql-insert

我有一张桌子

CREATE TABLE IF NOT EXISTS `employee` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) DEFAULT NULL,
`SALARY` int(11) DEFAULT NULL,
`DEPT` varchar(10) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)

如果我为上面的表插入值,就像下面的抛出错误一样

INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 6

删除列名称上的单引号.

INSERT INTO employee (NAME, SALARY, DEPT) VALUES ('user test', 10000, 'ADMIN');
Run Code Online (Sandbox Code Playgroud)

单引号用于字符串文字,列名是标识符.服务器抛出异常,因为列需要标识符而不是字符串文字.使用单引号包装标识符会将其转换为字符串.

如果碰巧列名和表名都是mysql保留关键字列表中的关键字之一,则可以使用反引号分隔.