0

我正在尝试将具有以下 json 字符串的条目存储在数据库中。然而,似乎 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}

任何援助将不胜感激。

4

2 回答 2

1

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

第二个调试是你错过了一个';' 在executeSQL中的插入语句中。值数组也丢失了。

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

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

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

希望这可以帮助。!

于 2012-09-28T14:18:16.423 回答
0

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

database.transaction(function(tx) {
     tx.executeSQL('INSERT OR REPLACE INTO MYTABLE (ID, DATA) VALUES (100,?)');  
}, [jsonString], errorCB, successCB)
于 2012-09-28T00:27:47.713 回答