Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么此SQL INSERT语句返回语法错误?_Mysql_Sql - Fatal编程技术网

Mysql 为什么此SQL INSERT语句返回语法错误?

Mysql 为什么此SQL INSERT语句返回语法错误?,mysql,sql,Mysql,Sql,好的,我有一个非常简单的mysql数据库,但是当我试图通过mysql管理员运行这个查询时,我会遇到奇怪的错误 插入客户报告(研究、, 类型、模式、选择、说明) 值('1','2','3','4','5') 错误: 1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行中使用“select,description”(选择,描述)值('1','2','3','4','5')附近的正确语法 您遇到了问题,因为您使用SQL保留字作为列名,而没有转义它们。试着这样做: IN

好的,我有一个非常简单的mysql数据库,但是当我试图通过mysql管理员运行这个查询时,我会遇到奇怪的错误

插入客户报告(研究、, 类型、模式、选择、说明) 值('1','2','3','4','5')

错误:

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行中使用“select,description”(选择,描述)值('1','2','3','4','5')附近的正确语法


您遇到了问题,因为您使用SQL保留字作为列名,而没有转义它们。试着这样做:

INSERT INTO `customreports`
(`study`, `type`, `mode`, `select`, `description`)
VALUES
('1', '2', '3', '4', '5');

只是猜测一下,但是保留字“select”(列为列名)会导致问题吗?

“select”是SQL中的保留字。。。请使用与“选择”不同的词。

sql中保留了“选择”一词。解释器认为您试图在INSERT INTO语句中使用SELECT语句。您需要将字段名括起来,以便解释器不会将其作为命令读取

MySQL更新:

insert into customreports ('study','type','mode','select','description') values...

是的,我会重写为:


在[customreports]([study]、[type]、[mode]、[select]、[description])中插入值('1','2','3','4','5')

每一个混沌都正确。。。但需要记住的关键是,您应该尽最大努力不要将保留字用作表中的列名。。。例如选择并键入。。。。其他三个都不是正面的,但这就是你的冲突所在。是的,通过在字段周围加引号来明确地告诉SQL您指的是其中的字段,但最好知道它失败的原因,而不仅仅是解决方法。。。有助于防止将来出现类似问题。

同上,但我相信列名周围需要双引号,而不是单引号。也许某些类型的SQL能够正确处理单引号,但我认为标准规定字段名使用双引号,字段值使用单引号。

+1这是正确的答案,但我肯定会将字段名更改为非保留字。使用保留字作为对象名会让你和你之后的每个人感到头疼。这确实是正确的答案。但是,我不建议仅仅为了不使用保留字而更改列名,这是一种很好的做法,可以避开所有标识符,这将为您节省大量的麻烦。虽然我必须承认,“select”作为列名有点过头了。不,这是mysql,mysql接受倒勾作为标识符转义字符。这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。@il_guru,查看选定的答案,然后是我的答案,注意到任何相似之处吗?