【问题标题】:How to insert multiple rows in Web SQL Database?如何在 Web SQL 数据库中插入多行?
【发布时间】:2012-11-14 19:46:29
【问题描述】:

我有一个包含多行数据的 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 中的多个值?或者我不应该担心这个。

【问题讨论】:

标签: javascript html web-sql


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我面临的问题是,当我在 db.transaction 函数中插入多行时,它只多次插入最后一行。我同意你的观点,由于异步它正在执行这种行为之王,你能告诉我解决方案是什么吗?如果你能提供任何样本,它会以更好的方式帮助我。
猜你喜欢
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多