我必须在数据库中插入某些文本,其中可能包含带单引号和双引号的字符。
例如:“Lumix”或类似 Vijay的
我已经成功地将双引号转义为:
if(fdata.search('"') != -1) {
fdata = fdata.replace(/(['"])/g, "\\$1");
}
但我不明白如何逃避单引号。在没有转义单引号的情况下,SQLite不接受数据。如何解决这个问题?提前谢谢!
答案 0 :(得分:4)
使用参数,然后您不需要转义任何内容:
db.execute('INSERT INTO MyTable(ID, Name) VALUES(?, ?)', 123, name);
答案 1 :(得分:1)
CL。答案是迄今为止最好的解决方案,但是如果你想在不重写代码的情况下完成这项工作,你可以添加这个功能:
function removeQuotes(str){
return str.replace(/'/g, "'").replace(/"/g,""");
}
用法:
fdata = removeQuotes(fdata);
这对我有用
答案 2 :(得分:0)
使用replaceAll
方法将'(single quote)
替换为space
,如下所示:
String name= name.replaceAll("'", "''");