mysql错误1064的可能原因是什么?

时间:2018-10-12 04:21:52

标签: mysql

请帮助。已经有几个小时了,但我仍然无法解决此错误。

我的查询是这样的:

INSERT INTO image (document_id, image_dir, page_number) 
VALUES( '2018-002', 'D:\\DRS\\ARTICLES\\IMAGE\\', 1)

document_idimage_dir是VARCHAR,而page_number是INT

错误消息是:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本以使用正确的语法   在第1行的“ D:\ DRS \ ARTICLES \ IMAGE \',1)”附近

我已经尝试过将`作为列名分隔符,但仍然无济于事。

1 个答案:

答案 0 :(得分:0)

我认为您将不得不双重转义\字符,一种用于您的语言,另一种用于mysql。尝试像这样进行查询,

INSERT INTO image (document_id, image_dir, page_number) VALUES( '2018-002', 'D:\\\\DRS\\\\ARTICLES\\\\IMAGE\\\\', 1)

而不是

INSERT INTO image (document_id, image_dir, page_number) VALUES( '2018-002', 'D:\\DRS\\ARTICLES\\IMAGE\\', 1)

这是解释。

从工作台插入时,此查询

INSERT INTO image (document_id, image_dir, page_number) VALUES( '2018-002', 'D:\\DRS\\ARTICLES\\IMAGE\\', 1)

工作正常,那么在您的C#代码中,您需要转义两个反斜杠(\\),然后将变成\\\\。

如果您仅使用C#代码编写此查询,

INSERT INTO image (document_id, image_dir, page_number) VALUES( '2018-002', 'D:\\DRS\\ARTICLES\\IMAGE\\', 1)

然后进入mysql服务器的实际查询变成这个,

INSERT INTO image (document_id, image_dir, page_number) VALUES( '2018-002', 'D:\DRS\ARTICLES\IMAGE\', 1);

,即使您尝试从工作台运行,此查询也会失败。

总而言之,您需要用C#(或需要转义斜线的Java之类的语言)编写\\\\而不是用\\编写\\\\才能使查询从代码开始工作。