我目前正在将mysql数据库的xml导出导入到websql数据库中,以用于在线移动体验。
一切正常,花花公子,直到我插入的任何字符串都有双引号。通常,在PHP中,我会在插入时使用类似:mysql_real_escape_string的内容。
我知道我可以尝试的选项是编写正则表达式并创建用于添加/删除斜杠的函数。谷歌上有很多这方面的例子 - 但我希望看到的是其他人是否遇到过这种情况,并且可能有更好的解决方案。
感谢您的帮助!
答案 0 :(得分:6)
忘记逃跑。做正确的事:使用占位符。在这种情况下,数据永远不会被视为原始数据字符串。在Web SQL中,可以使用executeSql
完成此操作。有关其工作原理的说明,请参阅pre-processing section。
直接来自文件介绍的例子:
db.readTransaction(function (t) {
t.executeSql('SELECT title, author FROM docs WHERE id=?', [id], function (t, data) {
report(data.rows[0].title, data.rows[0].author);
});
});
无论id
变量中的内容是什么,此请求都会查找逐字值,永远不会被解释为命令的一部分。
答案 1 :(得分:0)
一个简单的解决方法是使用AJAX请求将XML字符串发送到PHP,这将返回带有转义引号的字符串。