我们可以在PHP中使用Web SQL本地数据库吗?

时间:2015-05-14 06:06:05

标签: javascript php mysql cordova web-sql

我正在使用带有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将此数据库与实时数据库同步?

2 个答案:

答案 0 :(得分:0)

您无法从PHP访问本地数据库,您只能使用javascript。

我认为您在本地数据库中存储总项目,或在本地数据库中存储所有项目的last_id。

在页面加载时,使用ajax比较本地数据库和实时数据库的总和。然后从Live DB加载新项目并插入本地DB。或清除所有本地数据库并加载Live DB中的所有项目。

希望能帮到你!

答案 1 :(得分:0)

我的2美分:首先,WebSQL API已被弃用,那你为什么考虑使用相同的?最好使用一些适配器,如LocalForageYdnDBLawnChair等,它们将隐藏底层数据库API(WebSQL或IndexedDB)。 IndexedDB规范取代了WebSQL。