请帮助。已经有几个小时了,但我仍然无法解决此错误。
我的查询是这样的:
INSERT INTO image (document_id, image_dir, page_number)
VALUES( '2018-002', 'D:\\DRS\\ARTICLES\\IMAGE\\', 1)
document_id
和image_dir
是VARCHAR,而page_number
是INT
错误消息是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本以使用正确的语法 在第1行的“ D:\ DRS \ ARTICLES \ IMAGE \',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之类的语言)编写\\\\而不是用\\编写\\\\才能使查询从代码开始工作。