如何在cordova中使用sqlite插件的更新查询

时间:2016-05-27 00:13:37

标签: jquery sqlite cordova android-sqlite phonegap-plugins

我试图使用cordova 5.1和sqlite插件更新预先填充的数据,但它不起作用。我读了很多信息,但它没有用。

我在sqlite中的数据类型是double1,table1中的行(a1,a2,a3)

数据库打开良好,我可以用SELECT看到数据。但更新我不能。

document.addEventListener("deviceready", onDeviceReady, true);
    function onDeviceReady(){
      var db = window.sqlitePlugin.openDatabase({name: "tables1.db", location: 'default', createFromLocation: 1});
}

示例不起作用

1 .-

    var a1= Math.cos(value1 * Math.PI / 180); 
    var a2= Math.cos(value2 * Math.PI / 180);
    var a3= Math.cos(value3 * Math.PI / 180);

var sqlTxt = "INSERT or replace INTO table1 (a1,a2,a3) VALUES (?, ?, ?)";
db.transaction(function(tx) {tx.executeSql(sqlTxt,['a1','a2','a3'])}, errorCB, successCB);

2 .-

var a1= Math.cos(value1 * Math.PI / 180); 
var a2= Math.cos(value2 * Math.PI / 180);
var a3= Math.cos(value3 * Math.PI / 180);

tx.executeSql('UPDATE table1 SET  a1 = '+a1+', a2 = '+a2+',a3 = '+a3+' ', [], queryDB, errorCB);

没有+

tx.executeSql('UPDATE table1 SET  a1 = 'a1', a2 = 'a2',a3 = 'a3' ', [], queryDB, errorCB);

3 .-

        var a1= Math.cos(value1 * Math.PI / 180); 
        var a2= Math.cos(value2 * Math.PI / 180);
        var a3= Math.cos(value3 * Math.PI / 180);     
tx.executeSql('UPDATE table1 SET  a1=?,a2=?,a3=?', ['a1','a2','a3'], queryDB, errorCB);

我不知道出了什么问题。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为问题是在sqlite查询中传递变量的方式不正确:

tx.executeSql('UPDATE table1 SET  a1=?,a2=?,a3=?', ['a1','a2','a3'], queryDB, errorCB);

哪个应该是

tx.executeSql("UPDATE table1 SET  a1=?,a2=?,a3=?", [a1,a2,a3], queryDB, errorCB);

确保获得a1,a2,a3中的值。

相关问题