如何在数据库中存储“\”?
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 时导致问题的其他字符
我写了一个方法在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 时导致问题的其他字符