我正在尝试在数据库中存储带有以下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}
任何帮助将不胜感激。
答案 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)