6

我有一个包含多行数据的 JavaScript 对象,我想将它插入到 web sql 数据库中。这是我的代码的样子。

for(i in rows)
{
    (function(row){
        db.transaction(function(tx) {
            tx.executeSql("INSERT INTO my_table (id, name, parent_id) VALUES (?, ?, ?)",
                [ row.id, row.name, row.parent_id ], onSuccess, onError
            );
        });
    })(rows[i]);
}

我对此的问题是:

  1. 这可以通过在内部移动外循环来完成db.transaction。会更好吗?为什么?
  2. 是否可以在单个查询中添加多行,如单个 MySQL 中的多个值INSERT?或者我不应该担心这个。
4

1 回答 1

3

这可以通过在 db.transaction 中移动外循环来完成。会更好吗?为什么?

是的。好多了。1)创建交易并不便宜。2)循环异步通常不好。

是否可以在单个查询中添加多行,如单个 MySQL INSERT 中的多个值?或者我不应该担心这个。

不用担心。多行解决方法是语法糖。没有性能优势。最好在一笔交易下循环它。

再次不要循环executeSql,它是异步的。

于 2012-11-15T01:59:25.960 回答