📅  最后修改于: 2020-11-12 00:46:20             🧑  作者: Mango
Web SQL数据库是用于存储或管理数据库中数据的网页。 Google Chrome,Opera和Android浏览器均支持该API。
Web SQL API不是HTML5规范的一部分,而是一个单独的规范。它提供了一组API来操作客户端数据库。
开放式数据库,事务是执行的基本方法。
W3C Web应用程序将在2010年11月使用该规范。它指定缺少独立的实现,因为该规范无法继续成为W3C的建议。
Mozilla Corporation是该标准背后的关键之一,同时又是IndexDB背后的原动力,是替代存储标准。
Web API不是HTML5规范的一部分。它是一个单独的规范,它指定一组API来操作客户端数据库。
网络SQL数据库可在Safari,Chrome和Opera的最新版本中使用。
有三种方法-
如果数据库已经存在,则使用Open Database方法打开数据库。使用以下代码创建并打开数据库-
var db = openDatabase ('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
上面的方法采用了以下五个参数-
在最后和第五个参数中,如果正在创建数据库,则将调用创建回调。
我们使用database.transaction()执行查询。它有一个参数,执行查询的方式如下:
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
});
上面的代码在“ mydb”数据库中生成一个名为LOGS的表。
要在表中创建条目,我们执行一个SQL查询,如下所示:
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');
});
我们可以在创建输入时传递动态值,如下所示:
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
tx.executeSql('INSERT INTO LOGS (id,log) VALUES (?, ?'), [e_id, e_log];
});
e_id和e_log是此处的外部变量,它们执行数组中的每个项目。
要读取已经存在的记录,我们使用回调来捕获结果,如下所示:
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "Found rows: " + len + "
";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
alert(results.rows.item(i).log );
}
}, null);
});
让我们将此示例保存在完整的HTML5文档中,如下所示,并尝试在Safari浏览器中运行它。
Status Message
上面的代码产生以下结果:
Log message created and row inserted.
Found rows: 2
foobar
logmsg