0

我正在使用 JavaScript API 从 Google Feeds API 获取一些内容,并尝试将它们插入到 Phonegap 应用程序中的 SQLite 数据库中。

但是由于获取的内容字符串中的非转义字符和特殊字符,我得到了很多语法错误。因为内容字符串在引号内包含 HTML 代码及其属性和值。

任何人都可以帮助我完成这项任务的解决方案吗?有人可以建议我执行 PHP 函数(如 addlashes、htmlentities、htmlspecialchars)的方法吗?让我知道进行此插入的正确方法。只有JS。

例如:插入变量“content”是一个字符串,<div id="test" style="color:#000;">I'm tall and I'm "26" now.</div>它需要插入到一个列中,html内容没有任何错误。

var content = <div id="test" style="color:#000;">I'm tall and I'm "26" now.</div>
tx.executeSql("INSERT INTO MyTable(id, Content) VALUES ('1',content)");

变量“content”有单引号和双引号,此外它还可以包含许多特殊字符。所以内容变量必须在插入数据库之前进行格式化。

4

3 回答 3

1

要在 SQL 语句中使用任意字符串值,请使用参数:

var content = "!'§$%&/()=?+*~#|<...";
...
tx.executeSql("INSERT INTO MyTable(ID, Name, Content) VALUES(?,?,?)",
              [123, "Some Name", content]);
于 2013-10-08T14:11:12.813 回答
0

I think I have found the answer to format js string before adding to db in http://phpjs.org/functions/htmlentities/

于 2013-10-09T04:36:15.767 回答
0

可能下面的代码可以帮助您。

var db = window.sqlitePlugin.openDatabase("Databases", "1.0", "XYZ", 1000000);  

db.transaction(function(tx) {
   var content = $("#test").html();

   tx.executeSql("INSERT INTO MyTable (id, Content) VALUES(?,?)",['1',content], querySuccess, errorCB);         
}, errorCB);


<body>
   <div id="test" style="color:#000;">I'm tall and I'm "26" now.</div>
</body>
于 2013-10-21T07:58:45.960 回答