举例说明如何使用WebSQL?

Web SQL 已被弃用,不建议在新项目中使用。现代浏览器大多已移除或计划移除对它的支持,应该使用 IndexedDB 来替代它。

尽管如此,如果你需要理解 Web SQL 的用法,以下是一个简单的例子,演示如何创建一个数据库,一个表,并插入和查询数据:

<!DOCTYPE html>
<html>
<head>
<title>Web SQL Example</title>
</head>
<body>

<script>
  var db = openDatabase('mydb', '1.0', 'My database', 2 * 1024 * 1024); // 2MB

  db.transaction(function (tx) {
    tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "Hello")');
    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "World")');

    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
      var len = results.rows.length, i;
      msg = "<p>Found rows: " + len + "</p>";
      document.querySelector('body').innerHTML +=  msg;

      for (i = 0; i < len; i++) {
        msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
        document.querySelector('body').innerHTML += msg;
      }
    }, null); // null handler for errors.
  });

</script>

</body>
</html>

代码解释:

  1. openDatabase('mydb', '1.0', 'My database', 2 * 1024 * 1024): 打开或创建一个名为 "mydb" 的数据库。版本为 '1.0',描述为 'My database',大小为 2MB。

  2. db.transaction(function (tx) { ... });: 开始一个事务。所有数据库操作都应该在事务中进行。

  3. tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');: 创建一个名为 "LOGS" 的表,如果它不存在的话。包含 id (唯一) 和 log 两列。

  4. tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "Hello")');: 插入数据到 "LOGS" 表。

  5. tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { ... }, null);: 从 "LOGS" 表中选择所有数据。

    • []: 用于SQL语句的参数,这里不需要参数,所以是空数组。
    • 回调函数 function (tx, results) { ... }: 查询成功后执行的函数。results 对象包含查询结果。
    • null: 错误处理函数,这里设置为 null,表示忽略错误。
  6. results.rows.length: 获取结果的行数。

  7. results.rows.item(i): 获取第 i 行的数据。

再次强调,Web SQL 已被弃用。 这个例子仅用于演示其基本用法,不建议在实际项目中使用。 请考虑使用 IndexedDB,它是一个更现代、更强大的客户端存储解决方案。

希望这个例子能帮助你理解 Web SQL 的基本用法。 如果你有任何其他问题,请随时提出。

posted @   王铁柱6  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示