我昨天花了整整一天试图调试这个,我无法取得任何进展。情况:我正在使用Phonegap为iOS平台创建一个应用程序。我正在使用带有表格的数据库来存储各种数据(这是一个高尔夫记分卡应用程序)。现在我试图在我的课程表中存储一个对象数组,但它返回错误代码“错误:无法准备语句(1接近”blah“:语法错误)代码:5”
以下是导致问题的代码。
//for example
var string = JSON.stringify(['dag', 'woah']);
db.transaction(function (tx){
tx.executeSql('UPDATE courses SET holes_info = "' + string + '" WHERE course_id = "' + course_id + '"', [], nullHandler, errorHandler);
});
在我的课程表中,holes_info列设置为数据类型TEXT。因此,如果我创建string = JSON.stringify([1,2,3]),此代码将起作用。如果我在数组中使用整数,那么它就可以了,但是如果我使用文本则不然。我尝试将它与单引号和双引号混合,但这也无济于事。我的目标是存储一个看起来像这样的对象数组......
var hole_object = {
"par": 0,
"yards": 0,
"score":0,
"drives":0,
"irons": 0,
"wedges": 0,
"putts": 0,
"strokes": 0
};
每次它说“1近”标准“:语法错误”。 stackoverflow上的另一个人问了一个类似的问题,并说使用escape例如...
var string = escape(JSON.stringify(['dag', 'woah']));
但这也没有帮助。因此,我已经尝试了所有我能想到的工作,但没有任何表现。如果必须,我将为每个包含hole_object数组数据的课程创建一个表,但我想看看是否有办法首先完成上述工作。
再次感谢您的帮助!
答案 0 :(得分:0)
只需使用参数:
tx.executeSql("UPDATE courses SET holes_info = ? WHERE course_id = ?",
[string, course_id], nullHandler, errorHandler);