HTML5 webSQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5 webSQL相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">

        var msg;

        // 可以有多个数据库,但无法遍历,
        // 包括空字符串在内的所有字符串都可以作为有效地数据库名称,数据库名称区分大小写,且可以比较。
        // 一个数据库只能有一个版本号
        // 一个显示名字(displayName),
        // 数据库将要保存数据的大小(estimatedSize,以字节为单位 )
        // 一个可选的回调函数(createionCallback,如果数据库没有被创建,这个函数将会被调用 )
        var db = openDatabase(mydb, 1.0, Test DB, 2 * 1024 * 1024);

        // 方法 transaction() 和 readTransaction() 有一个到三个参数, 
        // 后两个参数为可选的,分别表示错误回调函数和成功回调函数。
        // transaction() 方法为 read/write 模式,readTransaction() 方法为只读模式;
        db.transaction(function (tx) {
               tx.executeSql(CREATE TABLE IF NOT EXISTS ques (id unique, log));
               tx.executeSql(INSERT INTO ques (id, log) VALUES (4, "foobar"));
               tx.executeSql(INSERT INTO ques (id, log) VALUES (3, "logmsg"));

               msg = <p>Log message created and row inserted.</p>;
            document.querySelector(#status).innerHTML =   msg;
        },function(){alert(e);},function(){alert(s);});


        // executeSql这个函数具有四个参数:
        // 表示查询的字符串(sqlStatement);
        // 插入到查询语句中问号所在处的字符串数据(arguments);
        // 一个可选的成功时执行函数(callback);
        // 一个可选的失败时执行函数(errorCallback)。

        // 查询结果是一个对象
        // 插入数据库,insertId 代表这个行号;如果插入多行数据,insertId 代表插入数据的最后一行行号。
        // 改变的行数用 rowsAffected 表示,没有改变 rowsAffected 为 0,“SELECT”语句,rowsAffected 就为 0.
        // rows 为一个 SQLResultSetRowList 对象,代表数据库按顺序返回的行。如果没有返回任何行,则这个对象为空。
        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>

 

以上是关于HTML5 webSQL的主要内容,如果未能解决你的问题,请参考以下文章

webSQL的基本操作

将本地 HTML5 DB(WebSQL 存储,SQLite)与服务器同步的最佳方法(2 路同步)[关闭]

HTML5 Web SQL数据库

有啥框架可以简化 webSQL 编码吗?

每日思考(2020/03/08)

如何从 JavaScript 压缩 WebSQL 数据库