如何在数据库中存储“\”?

How to storage the "\" in database?

我写了一个方法在navigate中存储一个字符串,但是字符串是这样的:

"data0000RS\Other\"

所以,崩溃了:

 [SQL] call P_A_OperReg_Bio("liaomalin", "511321199001031598", "P_1", "http:p_1......", "http://p1_url1..", "md5_p1_md51", "http://p1_url2..", "md5_p1_md52", "http://p1_url3..", "","data0000RS\Other\", "20170202", "", @a);
SELECT @a; 
 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20170202", "", @a);
SELECT @a' at line 1

快照:

如何解决这个问题?


如果我有字符串:

 data0000RS\Other\

如何将其转换为:

"data\510000RS\Other\"

如果前面有另一个斜杠,则需要转义:

"data\510000RS\Other\"

如果它在程序中,请不要那样做,这是不安全的!使用准备好的语句。

JAVA 中的示例:https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

反斜杠在数据库中用作转义符。 您可以使用两个反斜杠,而不是一个来生成结果或插入记录。

"data\510000RS\Other\"

Insert into table Values(1, "data\510000RS\Other\"

正如其他人指出的那样,您可以通过将所有斜杠替换为双斜杠来转义斜杠 (\) 来解决此问题。

我建议使用 escapeSql(String str) of apache.commons.lang

org.apache.commons.lang;

StringEscapeUtils.escapeSql(String str)

此方法不仅会转义斜线,还会转义插入 DB 时导致问题的其他字符