什么是Web SQL
什么是Web SQL? Web SQL数据库是用于存储或管理数据库中数据的网页。 Google Chrome,…
什么是Web SQL?
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的最新版本中使用。
Web SQL的方法:
有三种方法-
- 打开数据库-它使用现有数据库创建一个数据库对象,或者创建一个新的数据库对象。
- 事务-事务可以控制事务,并根据情况进行提交或回滚。
- 执行SQL-用于执行真实的SQL查询。
数据库开放
如果数据库已经存在,则使用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 = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
alert(results.rows.item(i).log );
}
}, null);
});
例
让我们将此示例保存在完整的HTML5文档中,如下所示,并尝试在Safari浏览器中运行它。
<!DOCTYPE HTML>
<html>
<head>
<script type = "text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg;
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")');
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
})
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
document.querySelector('#status').innerHTML += msg;
}
}, null);
});
</script>
</head>
<body>
<div id = "status" name = "status">Status Message</div>
</body>
</html>
上面的代码产生以下结果:
Log message created and row inserted. Found rows: 2 foobar logmsg
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

还没有任何评论,赶紧来占个楼吧!