我正在使用以下代码从数据库中获取数据并在列表视图中显示内容。但是每次加载应用程序时我都不想创建数据库...我只想创建一次...但是每当应用程序关闭时,数据库都会被删除。我希望它能保留,以便下次可以在不创建数据的情况下添加数据。
var arr = new Array();
var a;
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(populateDB, errorCB, successCBc);
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');
tx.executeSql('CREATE TABLE IF NOT EXISTS CUSTOMER (phno unique, fname, mname, lname, address, email)');
tx.executeSql('INSERT INTO CUSTOMER (phno, fname, mname, lname, address, email) VALUES (16, "shank","p","ram","addresssss","emailaddress")');
};
function queryDB(tx) {
tx.executeSql('SELECT * FROM CUSTOMER', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
$('#home').append('<li><a href="#artists">'+results.rows.item(i).phno+'<br>'+results.rows.item(i).fname+'</a></li>').listview("refresh");
}
};
function errorCB(err) {
console.log("Error processing SQL: "+err.code);
}
function successCBc() {
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(queryDB, errorCB);
};
答案 0 :(得分:2)
从代码中删除该行,它有效!!
tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');
答案 1 :(得分:1)
答案 2 :(得分:0)
根据您的代码,您将在populateDB()上删除表。尝试从populateDB()中删除以下行并再次检查数据库状态。
tx.executeSql('DROP TABLE IF EXISTS CUSTOMER');
同样要么从表创建脚本中删除唯一约束,请使用以下
替换现有代码var randomId = new Date().getTime();
tx.executeSql('INSERT INTO CUSTOMER (phno unique, fname, mname, lname, address, email) VALUES ("'+ randomId +'", "shank","p","ram","addresssss","emailaddress")');
同时检查jQuery Mobile库是否正确加载,否则它将只打印第一条记录然后停止执行。