我有以下代码,它应该能够记录到控制台的记录数(如果表subjects
存在)。
db = openDatabase("myDatabase", "1.0", "", 200000);
db.transaction(function(tx) {
tx.executeSql("SELECT COUNT(*) AS nor FROM subjects", [],
function(result){
console.log(result.rows);
},
function(tx, error){
tx.executeSql("CREATE TABLE subjects (id REAL UNIQUE, name TEXT)");
}
);
});
实际上result.rows
正在记录为未定义,所以我甚至无法在其上调用方法item(int index)
。如何访问返回的记录数?
答案 0 :(得分:2)
您忘记了onSuccess回调函数中的tx
参数。您的result
变量实际上是事务对象。
以下是更正后的代码:
db = openDatabase("myDatabase", "1.0", "", 200000);
db.transaction(function(tx) {
tx.executeSql("SELECT COUNT(*) AS nor FROM subjects", [],
function(tx, result){ // <-- this is where you forgot tx
console.log(result.rows);
},
function(tx, error){
tx.executeSql("CREATE TABLE subjects (id REAL UNIQUE, name TEXT)");
}
);
});