我试图使用Javascript和SQLite将动态元素插入到表中,当其中一个值具有单引号和双引号时,我遇到问题,例如 - 7'英寸"乙烯基 - 我知道这个例子没有任何感觉,但是这个应用程序的用户在表单中插入所有类型的垃圾。
我的查询会被"'搞砸了。在任何地方,我的问题是:是否有一个函数或某些东西可以让我使用我需要的真正字符串而不会破坏所有内容?
这是代码:
$.each(data, function(i, item) {
tx.executeSql("INSERT INTO articulo (codart) VALUES (" + validate(item.CODART) + ")");
});
function validate(item){
if(item == null){
return null;
}else{
return "'" + item + "'";
}
}
答案 0 :(得分:2)
你可以通过加倍来引用单引号,但只使用参数会更容易:
tx.executeSql("INSERT INTO articulo (codart) VALUES (?)", [validate(item.CODART)]);
答案 1 :(得分:1)
双引号不应该产生问题。尝试用两个单引号替换单引号。
将功能更改为:
function validate(item){
if(item == null){
return null;
}else{
return "'" + item.replace("'", "''") + "'";
}
}