值不会从输入错误插入数据库:在phonegap中未定义

时间:2014-11-12 13:33:21

标签: javascript sqlite cordova

我是phonegap的新手。我创建了包含两个表的数据库。它显示sql错误undefined.I使用下面的代码创建另一个表,几乎没有修改。那个表运行正常。但是下面的代码不能正常工作。我无法找到bug。它是错误的。请帮助。

function insertVehicleData(tx)
{
    var db=window.openDatabase("FuelDatabase","1.0","FuelData",200000);
    db.transaction(vehicleDB,errorVDB,successVDB);
}

function vehicleDB(tx)
{
    tx.executeSql('CREATE TABLE IF NOT EXISTS  vehicledata (vhname TEXT, vmake   TEXT,vtype TEXT,currency TEXT)');

    var  vhname=document.getElementById('vhname').value;
    var vmake= document.getElementById('vmake').value;
    var  vtype=document.getElementById('vtype').value;
    var currency=document.getElementById('currency').value;

    tx.executeSql("INSERT INTO vehicledata (vhname,vmake,vtype,currency) VALUES ('"+ vhname +"','"+ vmake +"' , "+ vtype+", '"+ currency +"')");

 }

 function errorVDB(tx,error)
 {
     alert("error not saved:"+error);
 }

 function successVDB()
 {
     alert("your data saved");
 }

1 个答案:

答案 0 :(得分:0)

尝试替换此行:

tx.executeSql("INSERT INTO vehicledata (vhname,vmake,vtype,currency) VALUES ('"+ vhname +"','"+ vmake +"' , "+ vtype+", '"+ currency +"')");

这一行:

tx.executeSql("INSERT INTO vehicledata (vhname,vmake,vtype,currency) VALUES (?,?,?,?)",[vhname,vmake,vtype,currency]);

原因在于,在插入值时,可能需要转义的项目或者它们可以“破坏”该语句。这样做可以确保正确转义值。