SQLite使用JSON.stringyfy插入表中。使用引用字符串

时间:2015-08-11 06:02:15

标签: javascript json sqlite

我正在使用SQLite for mobile,主要用于混合移动应用程序开发。

我将数据存储在一列中,就像这样。

var QueryToInsert = JSON.stringify(object) // where object is defined as below

INSERT OR REPLACE INTO Table (id,data) VALUES ('1', " ' " + QueryToInsert + " ' " );

变为

INSERT OR REPLACE INTO Table (id,data) VALUES ('1','[{"name":"Romeo","lastName":"Juliet"}]')

虽然这有效,但如果我有这样的对象:

var object = {"name": "In connection with this appellative of 'Whalebone Whales' , it is of great..." }  

注意字符串中的''

如果我这样做。

 INSERT OR REPLACE INTO Table (id,data) VALUES ('1', " ' " + JSON.stringify(object) + " ' " );

它给了我一个错误:

{"code":5,"message":"near \"Whalebone\": syntax error"}

解决方案我尝试过:

在进行查询之前,将所有'替换为某些字符。它确实有效,但是当有大量数据和大量表时,将所有'替换为一个缓慢的过程。

我正在寻找可以帮助我的任何解决方案。

1 个答案:

答案 0 :(得分:1)

在SQL中,字符串中的单引号必须通过加倍来转义:

INSERT ... VALUES ('... of ''Whalebone Whales'' ...');

但是,通过使用参数来避免格式​​化这样的问题要容易得多:

tx.executeSql("INSERT OR REPLACE INTO Table (id,data) VALUES (?, ?);",
              ['1', JSON.stringify(object)],
              onSuccess, onError);