插入时Mysql抛出错误

时间:2013-03-25 09:44:03

标签: 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 ;

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

INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');

2 个答案:

答案 0 :(得分:6)

删除列名称的单引号。

INSERT INTO employee (NAME, SALARY, DEPT) VALUES ('user test', 10000, 'ADMIN');

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

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

答案 1 :(得分:2)

更改此

INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');

INSERT INTO employee (`NAME`, `SALARY`, `DEPT`) VALUES ('user test', 10000, 'ADMIN');