phonegap:尝试将json存储在数据库中:

时间:2012-09-27 17:07:28

标签: javascript android json cordova web-sql

我正在尝试在数据库中存储带有以下json String的条目。然而,似乎json字符串的格式与db不一致,尽管我读过这篇文章说这应该很容易:

我试过了:

function Activity() {
    this.clicks = 100;
    this.activityTypeCode = 3;
}

    var anActivity=new Activity(); 
    var jsonString=JSON.stringify(anActivity);
    database.transaction(function(tx) {
         tx.executeSQL('INSERT INTO MYTABLE(ID, DATA) VALUES (100,'+jsonString+')');  
    }, errorCB, successCB)

;

我收到错误,指出错误无法识别的标记“{”。 当我做console.log(jsonString)时,我得到:

{"clicks":100, "activityTypeCode":3}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

首先要确保你的json字符串是正确的。您可以在此处验证您的json字符串。

第二次调试你错过了';'在executeSQL中的insert语句中。值数组也缺失。

第三次调试将是您的executeSQL语句。试试这个:

    database.transaction(function(tx) 
    {
      tx.executeSQL('INSERT INTO MYTABLE(ID, DATA) VALUES (?,?);', [100, jsonString],                 
        errorCB, successCB);
     }

您是否已将ID声明为AUTOINCREMENT?您无法将值分配给AUTOINCREMENT列。

希望这有帮助。!

答案 1 :(得分:0)

使用参数化查询或带引号的字符串

database.transaction(function(tx) {
     tx.executeSQL('INSERT OR REPLACE INTO MYTABLE (ID, DATA) VALUES (100,?)');  
}, [jsonString], errorCB, successCB)