我有以下 dml sql(由 mysql wb 生成):
INSERT INTO `status_need` VALUES (1,1,1,'famille cherchant une autre famille (pour garde partagée ou sortie d\'école)'),(2,1,2,'famille cherchant professionnelle de la garde d\'enfants'),(3,2,1,'professionnelle de la garde d\'enfants cherchant enfants à garder');
当我从 java 运行它时,它会引发错误,可能是因为字段值中的撇号/引号。
我不知道为什么会这样,因为引号是用反斜杠转义的,而且这个 SQL 是由 mysql 本身生成的。
谁能告诉我如何解决这个问题吗?
最佳答案
我猜测您的 Java 代码有一个如下所示的字符串文字:
"INSERT INTO `status_need` VALU...ie d\'écol..."
?
不起作用的原因是在 Java 中,在字符串文字中,\'
表示 '
。您需要通过编写 \\
来转义反斜杠 \
:
"INSERT INTO `status_need` VALU...ie d\\'écol..."
(或者,正如 danihp 所说,您可以通过编写 ''
而不是 \'
来回避问题:MySQL 支持两种在单引号内转义的方法单引号字符串。)
关于mysql - 转义引号作为字段的值使我的 sql 脚本崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521622/