举例说明如何使用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>
代码解释:
-
openDatabase('mydb', '1.0', 'My database', 2 * 1024 * 1024)
: 打开或创建一个名为 "mydb" 的数据库。版本为 '1.0',描述为 'My database',大小为 2MB。 -
db.transaction(function (tx) { ... });
: 开始一个事务。所有数据库操作都应该在事务中进行。 -
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
: 创建一个名为 "LOGS" 的表,如果它不存在的话。包含id
(唯一) 和log
两列。 -
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "Hello")');
: 插入数据到 "LOGS" 表。 -
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { ... }, null);
: 从 "LOGS" 表中选择所有数据。[]
: 用于SQL语句的参数,这里不需要参数,所以是空数组。- 回调函数
function (tx, results) { ... }
: 查询成功后执行的函数。results
对象包含查询结果。 null
: 错误处理函数,这里设置为null
,表示忽略错误。
-
results.rows.length
: 获取结果的行数。 -
results.rows.item(i)
: 获取第 i 行的数据。
再次强调,Web SQL 已被弃用。 这个例子仅用于演示其基本用法,不建议在实际项目中使用。 请考虑使用 IndexedDB,它是一个更现代、更强大的客户端存储解决方案。
希望这个例子能帮助你理解 Web SQL 的基本用法。 如果你有任何其他问题,请随时提出。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步