我已经使用数据库创建了一个数据库并在 ListView 中显示,但我想使用相同的 数据库在另外两个页面中,那么我如何在多个页面中访问同一个数据库? 请浏览我的代码..
var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //will create database Mydatabase or open it
function onDeviceReady(){
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS ALLWORDS (id INTEGER PRIMARY KEY AUTOINCREMENT, Word TEXT NOT NULL, Type_Of_Word TEXT NOT NULL)');
}
function errorCB(err) {
alert("error in database : "+err);
}
function successCB() {
alert("successs!");
db.transaction(queryDB,errorCB);
}
function queryDB(tx){
tx.executeSql('SELECT * FROM ALLWORDS',[],querySuccess,errorCB);
最佳答案
重要的一行是:
var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000);
如果数据库不存在,它将创建它,如果存在,它将返回到该数据库的连接。
所以你可以把这一行放在一个单独的js文件中,我们称之为global.js,然后将它包含在你需要的每个页面中,之后包含的所有脚本都会知道该变量,例如:
global.js
...
var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //should be defined in the script itself, not inside of a function.
...
script.js
//in the HTML this is included after the global.js so it knows the db variable
function onDeviceReady(){
db.transaction(populateDB, errorCB, successCB);
}
HTML
//global should always come first
<script src="global.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
这样,您只需定义一次。当然,在全局中,您应该放置将被许多文件使用的所有其他函数/变量。
关于jquery - 如何在不同页面访问phonegap数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846258/