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文字列を検証できます。

2番目のデバッグは、「;」が欠落していることです。executeSQLのinsertステートメントで。値の配列もありません。

3番目のデバッグは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 に答える