我正在使用带有JavaScript的Web SQL本地数据库创建脱机应用程序。
当互联网未连接时,所有条目都将插入本地数据库Web SQL中。
但是当我连接到互联网时,Web SQL本地数据库将与实时数据库同步,并且将自动插入在实时数据库中不可用的本地数据库的新条目。
稍后此应用程序将部署在Phonegap中。
这是本地数据库的代码(SQL事务)
打开数据库:
var db = openDatabase('retaurant', '1.0', 'Test DB', 2 * 1024 * 1024);
新表并将数据插入表中:
var username = "Test";
var password = "test";
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS user (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT , username,password)');
tx.executeSql('INSERT INTO user (username,password) VALUES ("'+username+'","'+password+'")');
});
从数据库中删除条目
db.transaction(function (tx) {
tx.executeSql("DELETE FROM user WHERE id=?", [id],
function (tx, results) { });
});
此代码适用于本地,现在如何使用PHP将此数据库与实时数据库同步?
答案 0 :(得分:0)
您无法从PHP访问本地数据库,您只能使用javascript。
我认为您在本地数据库中存储总项目,或在本地数据库中存储所有项目的last_id。
在页面加载时,使用ajax比较本地数据库和实时数据库的总和。然后从Live DB加载新项目并插入本地DB。或清除所有本地数据库并加载Live DB中的所有项目。
希望能帮到你!答案 1 :(得分:0)
我的2美分:首先,WebSQL API已被弃用,那你为什么考虑使用相同的?最好使用一些适配器,如LocalForage,YdnDB,LawnChair等,它们将隐藏底层数据库API(WebSQL或IndexedDB)。 IndexedDB规范取代了WebSQL。