【问题标题】:How to "escape" a whole String - an SQL query如何“转义”整个字符串 - SQL 查询
【发布时间】:2010-05-14 08:18:24
【问题描述】:

当我将 SQL 查询的相对路径作为字符串添加时,所有的 \ 都会被删除。

我正在尝试添加字符串 ("pics\\"+onlyFile),如您所见,我已经转义了 \ 字符,所以我不明白为什么要删除它。 onlyFile 是一个包含文件名的变量。

“src”变量(我正在讨论的那个)在 SQL 语句正确之前的值,因此它是在添加到 SQL 查询时发生的。

【问题讨论】:

  • 您使用什么语言?什么 SQL 数据库?
  • Java (servlet) 和 MySQL

标签: java sql mysql escaping


【解决方案1】:

\ 也是一个MySql escape character,所以你需要将\\ 传递给它。

因此,将转义字符串加倍应该可以:

"pics\\\\" + onlyFile

当然,如果onlyFile 有转义字符,您也需要对它们进行双重转义。

【讨论】:

  • @hgulyan - “试试这个有时有效的结构”远没有解释为什么好。解释胜过神秘的巫术。
  • 哈哈。非常有趣。如果有效,我会解释原因。我不确定这是否是问题所在。如果没有关于它是什么语言和 DB 的信息,我只能猜测。
  • @hgulyan - 所以,您很乐意发布可能完全错误但可能是正确的答案,在这种情况下,您会很乐意解释为什么它们是正确的?
  • @Oded,你很高兴能写出一个解决方案,它已经被写成了你的主意。看,我承认,你的答案比我的好,它完全描述了问题和原因,但不要告诉我我错了,建议在这种情况下常见的解决方案,特别是如果它没有伤害任何事物。原因,为什么我没有解释我的解决方案不是出于善意或其他任何事情,我只是不确定,就是这样,但提出一个可以提供帮助的解决方案并不是犯罪。我不会继续争论,如果你认为我错了,让我们停下来。我无话可说。
  • 如果您不确定,那么解释为什么它可能起作用就更重要了。它可以帮助提问者确定解决方案是否真的适用于他们的问题。
最近更新 更多