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

value not insert into database from the input error:undefined in phonegap

本文关键字:phonegap 未定义 数据库 插入 输入 错误      更新时间:2023-09-26

我是phonegap的新手。我创建了包含两个表的数据库。它显示sql错误未定义。我使用下面的代码创建了另一个表,只做了一些修改。那个表工作正常。但是下面的代码不工作。我找不到错误。它有什么错误。请提供帮助。

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");
 }

尝试替换此行:

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]);

理由是,当插入值时,可能需要转义的项,否则它们可能会"破坏"语句。这样做可以确保正确地转义值。