Titanium 中的 SQLite 中的撇号中断插入查询

Apostrophe breaking insert query in SQLite in Titanium

我正在 JavaScript 中使用 Appcelerator 的 Titanium 开发平台编写应用程序以部署到 Android 移动平台。我正在尝试对 SQLite 数据库执行 INSERT

当用户输入单引号或撇号时,字符串会中断插入查询。我究竟做错了什么?

  var db = Ti.Database.install('db/kewGarden.sqlite', 'kewGarden');
   var driveByData = {
    "notes" : $.row3.getValue() // User entered string
};

driveByData = JSON.stringify(driveByData);

dbLib.saveRecording(saveDriveByDetailsSuccess, saveDriveByDetailsError,  {
    ref_id : newdriveById,
    tableName : tableName,
    data : driveByData
});

saveRecording : function(onSuccessCallback, onErrorCallback, options) {
    var strReplaceData = options.data.replace("'", "\'"); 
    db.execute("INSERT INTO g_temp  (ref_id, table_name, data, site) VALUES (" + options.ref_id + ",'" + options.tableName + "','" + strReplaceData + "','" + options.site + "')");       
},

此数据库的文档在此处:

http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Database.DB-method-execute

使用参数,那么你不需要转义任何东西:

db.execute('INSERT INTO MyTable(ID, Name) VALUES(?, ?)', 123, name);

你的查询是这样的,

db.execute('INSERT INTO g_temp  (ref_id, table_name, data, site) VALUES (?,?,?,?)',options.ref_id,options.tableName,options.data,options.site);