什么是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 删除。
还没有任何评论,赶紧来占个楼吧!