MySQL语法错误#1064:INSERT语句语法问题求助
排查MySQL #1064语法错误:INSERT语句问题
嘿,我来帮你搞定这个烦人的#1064语法错误!从你给出的错误提示和表结构信息来看,问题主要出在这几个关键地方:
1. 表名的引号使用错误
错误提示里提到的INSERT语句用了**单引号'**包裹表名tblproduct(也就是写成了INSERT INTO 'tblproduct'),这是MySQL语法里的大忌!
在MySQL/MariaDB中:
- 单引号
'是用来包裹字符串值的,比如'3'这种字符串内容; - 如果需要转义表名、列名这类标识符,必须用反引号
`,如果你的表名没有特殊字符(比如空格、关键字),甚至可以直接不用引号。
所以这部分要改成:
INSERT INTO `tblproduct` (id, name, code, image, price)
或者直接写INSERT INTO tblproduct (...)也行。
2. VALUES子句不完整(可能被截断)
错误提示里的VALUES部分只显示到VALUES(1, '3',明显是不完整的。你需要确保:
- 每个列对应的取值都填写完整(你的表有5个列,VALUES里就得有5个对应的值);
- 括号要正确闭合,语句末尾要加结束符
;。
结合你的表结构,给你一个正确的示例语句:
INSERT INTO `tblproduct` (id, name, code, image, price) VALUES(1, '测试产品', 'PROD003', '/uploads/product3.jpg', 29.99);
额外检查点
- 确认值的类型和列类型匹配:比如
id是int类型,值直接写数字不用引号;price是double类型,也直接写数字;name、code、image是字符串,必须用单引号包裹; - 检查有没有遗漏逗号分隔符,列名和值之间的逗号不能少;
- 确保没有使用MySQL的关键字作为列名/表名(你的表结构看起来没问题,但如果有的话必须用反引号转义)。
内容的提问来源于stack exchange,提问作者Shubham Aher
相关产品推荐
相关产品推荐

