phonegap sqlite 数据库:语句回调引发异常

phonegap sqllite Database: the statement callback raised exception

我遇到了这个奇怪的问题"the statement callback raised an exception or error did not return false"

这只是一个简单的数据库示例。 我的代码在 github 此处: https://github.com/prantikv/phonegapDBdemo

请阅读代码中的注释,它解释了一切。

我怀疑问题出在数据库的 ajax 回调中。 如果这是真的,那么我如何让 ajax 回调等待 sql-lite/phonegap 中的数据?

function formSent(){//fired when form is submited
  alert("formSent called");
 db.transaction(queryDB, errorTrans);
 return false;
}
function errorTrans(err){ //error for formsent
alert("formsent "+err.message+"|"+err.code);//error is generated here
}


function createSuccess(){//just alerts on success
alert("DB Created");
}

function populateDB(tx) {//transaction obj is passed. Table Created not populated
  alert("populateDB called");
   tx.executeSql('CREATE TABLE IF NOT EXISTS myDB (id , data)');
}

function onDeviceReady(){
 db= window.openDatabase("Database", "1.0", "Display Name", 4*1024*1024);
 db.transaction(populateDB, createERR, createSuccess);

}
function createERR(err){//error for create
alert("Create "+err.message);

}

AM 我应该为每个数据库添加 return false callback.if 是的那么 return 什么时候编辑哪个布尔值?

phonegap 文档示例中没有它 http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database

错误消息通常不是因为SQL,而是关于执行回调时发生的异常。所以你很可能发生了 JS 错误。

我找到了

tx.executeSql('INSERT INTO myDB VALUES (?,?)', [username,email], insertSuccess, errorInsert);

47index.js。它在 VALUES 之前缺少 (id,data)。这会导致下一个 SQL 调用

tx.executeSql('SELECT * FROM myDB', [], querySuccess, errorSelect);

失败。修复该问题,然后重试。