html5中sql表不许为空,HTML5 Web SQL API

rows(返回记录集) SQL记录集行列 只读属性

创建表的代码如下所示:

MyDb.transaction(function(evt){

evt.executeSql('CREATE TABLE IF NOT EXISTS Records (id unique, Record)');

});

本语句将会在XYT_Database数据库中创建一个Records表。向表中插入记录的代码如下所示:

evt.executeSql('Insert Into Records (id, Record) values (1, "abc")');

evt.executeSql('Insert Into Records (id, Record) values (2, "hello")');

evt.executeSql('Insert Into Records (id, Record) values (?, ?)'), [V_id, V_Record];

这里的V_id和V_Record是外部变量。executeSql在数组参数中将每个项目映射到?。

从表中读取记录(回调法)的代码如下所示:

MyDb.transaction(function(evt){

evt.executeSql('Select * From Records', [], function(evt,results){

var len = results.rows.length,i;

msg = "

查询结果记录数:" + len + "

";

document.querySelector('#status').innerHTML += msg;

for(i = 0; i < len; i++){

alert(results.rows.item(i).Record);

}

}, null);

});

从表中删除记录的代码如下所示:

evt.executeSql('Delete FROM Records Where id = 1');

从表中更新记录的代码如下所示:

evt.executeSql('Update Records Set Record=abcdefg Where id = 2');

此外,Web SQL还提供了同步与异步执行、为网络广告服务准备的用户追踪设置、进程级SQL执行等非常强大的功能,但是这里不再一一予以介绍。

3. Web SQL数据库的完整例子

我们准备了一个完整的例子,供读者学习参考。在该示例中,包含了建立数据库、设置数据库大小、数据写入、查询等相关操作,

具体代码如下:

var MyDb = openDatabase("XYT_Database", "1.0", "这是一个试验用的数据库", 10*1024*1024);

var msg;

MyDb.transaction(function(evt){

evt.executeSql('Create Tanle IF NOT EXISTS Records (id unique, Record)');

evt.executeSql('Insert Into Records (id, Record) values (1, "abc")');

evt.executeSql('Insert Into Records (id, Record) values (2, "hello")');

msg = '

创建了表【Records】,同时插入了两条记录。

';

document.querySelector('#status').innerHTML = msg;

});

MyDb.transaction(function(evt){

evt.executeSql('Select * From Records', [], function(evt,results){

var len = results.rows.length,i;

msg = "

查询结果记录数:" + len + "

";

document.querySelector('#status').innerHTML += msg;

for(i = 0; i < len; i++){

alert("查到的记录为:"+results.rows.item(i).Record);

}

}, null);

});

状态信息

运行效果图如下:

9f719b20d30a7a8ffd407bac78f41526.png

4. Web SQL的错误提示

Web SQL虽然小而简单,但是仍有较好的状态判断和错误提示,如下:

代 码 错误说明

0 UNKNOWN_ERR(未知错)

1 DATABASE_ERR(数据库自身错)

2 VERSION_ERR(版本错)

3 TOO_LARGE_ERR(数据库过大或溢出)

4 QUOTA_ERR(空间配额错)

5 SYNTAX_ERR(语法错)

6 CONSTRAINT_ERR(约束性错,主要集中在INSERT、UPDATE和REPLACE这些命令上)

7 TIMEOUT_ERR(执行超时)

5. Web SQL存在的安全问题

由于此标准已废弃,本书只简要介绍Web SQL的安全问题,不准备进行详细讨论。Web SQL一直存在的几大安全性问题:DNS欺骗攻击、跨目录攻击、执行风险(第三方源问题)和SQL注入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值