怎么逃避?正在插入sqlite数据库的数据.

Bil*_*lie 8 sqlite cordova

我正在使用手机间隙制作苹果应用程序(使用sqlite数据库).

除了我尝试插入网络链接时,我的所有插件都能正常工作.这个错误是因为网络链接中有"字​​符".

使用以下内容:

var content = 'hello, this is my <a href="www.google.com">link</a>'
tx.executeSql('UPDATE PAGES SET content="'+content+'" WHERE id="1"');
Run Code Online (Sandbox Code Playgroud)

返回以下错误

error code 1
error: "near "http": syntax error"
Run Code Online (Sandbox Code Playgroud)

如果我删除网站地址,我不会收到错误.我试过了:content = escape(content);

但这没效果.

ham*_*ene 11

使用参数绑定.这是你正在做的事情的正确和最安全的方式.

tx.executeSql('UPDATE PAGES SET content=? WHERE id=1', [content]);
Run Code Online (Sandbox Code Playgroud)


dav*_*der 0

使用 javascript 替换也许可以创建一个像这样的函数:

function CleanDbData( dirty ){
     var clean = dirty.replace( "/"","''").replace("<script>","[script]");
     return clean;
}

var mydata = CleanDbData( dirtydata );
Run Code Online (Sandbox Code Playgroud)

这不是AS,你将不得不搞乱正则表达式等,但你明白了[希望]