SQLite数据库插入时难以转义单引号字符

时间:2013-02-25 10:52:15

标签: javascript android sqlite titanium

我必须在数据库中插入某些文本,其中可能包含带单引号和双引号的字符。

例如:“Lumix”或类似 Vijay的

我已经成功地将双引号转义为:

if(fdata.search('"') != -1) {


fdata = fdata.replace(/(['"])/g, "\\$1");



}  

但我不明白如何逃避单引号。在没有转义单引号的情况下,SQLite不接受数据。如何解决这个问题?提前谢谢!

3 个答案:

答案 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("'", "''");