【发布时间】:2012-09-17 04:08:00
【问题描述】:
这是一个用 Javascript 编写的 for 循环。它正在尝试对 websql 应用查询。
for (var i = 0; i < 10; i++){
db.transaction(function (tx){
tx.executeSql('INSERT INTO ProjSetsT (ProjID) VALUES (?);', [i]);
});
}
尝试很明显,我尝试将值“0, 1, 2, ... 9”添加到表 ProjSetsT 的 ProjID 列中。这是行不通的。我只得到了最后一个元素,即插入了“9”,但没有插入前八个数字。
有语法错误吗?
【问题讨论】:
-
语法错误会阻止它完全运行... WebSQL 是一个异步 API,你不能指望它以这种方式捕获正确的值。见Web SQL Database + Javascript loop。此外,在一个事务中运行多个查询更快,并且实际上保证了插入顺序。在一个单独的事务中运行每个事务是一个缓慢的随机排序的免费的。
-
为什么不做一次查询呢?其中绑定的值是根据 for 循环中的值构建的字符串。
标签: javascript html web-sql