【发布时间】:2018-04-29 21:53:09
【问题描述】:
我有一个关于 MySQL 5.5.58-0+deb8u1 的声明,如下所示:
UPDATE `general` SET `CUSTOMER_NUMBER` = 'null', `MAINTENANCE_CONTRACT_NR` = '5678', `CONTACT1_NAME` = + 'ss\' where `general`.`uuid` = '06f8417b-c865-11e7-9a86-000c2924bf92'
我尝试用
转义\(在ss之后)string statementEsc = statement.replace('\\', '\\\\');
这会导致:
UPDATE `general` SET `CUSTOMER_NUMBER` = 'null', `MAINTENANCE_CONTRACT_NR` = '5678', `CONTACT1_NAME` = + 'ss\\' where `general`.`uuid` = '06f8417b-c865-11e7-9a86-000c2924bf92'
手动尝试查询时,MySQL 接受此查询,但程序报错
已注册 MySQL JDBC 驱动程序 执行更新操作时出现问题:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'ss\'、`...第 1 行附近使用的正确语法 SQL UPDATE operation has failed: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have a error in your SQL syntax;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'ss\', ... = '' 附近使用正确的语法。
我不明白为什么。
【问题讨论】:
-
你会得到它的排序。 (带着浓重的德国口音)“祝你好运”。对不起。忍不住了。