Я создаю автономное приложение, используя локальную базу данных веб SQL с JavaScript.
Когда интернет не будет подключен, все записи будут вставлены в локальную базу данных веб-SQL.
Но когда я подключен к Интернету, локальная база данных веб-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?
Вы не можете получить доступ к локальной базе данных из PHP, вы можете использовать только JavaScript.
Я думаю, что вы храните общий элемент в локальной БД, или last_id всего элемента в локальной БД.
На загруженной странице, используя ajax для сравнения общего количества локальных и живых БД. Затем загрузите новый элемент из Live DB и вставьте в локальную базу данных. ИЛИ очистите все локальные БД и загрузите все элементы из БД Live.
Надеюсь помочь тебе!
Мои 2 цента: во-первых, API WebSQL устарел, тогда почему вы решили использовать его? Лучше использовать какой-нибудь адаптер, например LocalForage, YdnDB, Шезлонге и т.д., который будет скрывать базовый API базы данных (WebSQL или IndexedDB).
Спецификация IndexedDB заменила WebSQL.