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

Difficulty in escaping single quote character while SQLite database insertion

本文关键字:转义 单引号 字符 SQLite 数据库 插入      更新时间:2023-09-26

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

例如:"Lumix">或类似Vijay的

我已经成功地逃脱了这样的双引号:

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

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

}  

但我不明白如何避开那些只言片语。如果不转义单引号,SQLite将不接受数据。如何解决问题?提前感谢!

使用参数,就不需要转义任何内容:

db.execute('INSERT INTO MyTable(ID, Name) VALUES(?, ?)', 123, name);

CL。's的答案是迄今为止最好的解决方案,但如果你想在不重写代码的情况下实现这一点,你可以添加以下函数:

function removeQuotes(str){
return str.replace(/'/g, "'").replace(/"/g,""");
}

用法:

fdata = removeQuotes(fdata);

这对我很有效

使用replaceAll方法将'(single quote)替换为space,如下所示:

     String name= name.replaceAll("'", "''");