7

I have a JavaScript object with multiple rows of data and I want to insert it into web sql database. Here is how my code looks like.

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]);
}

My questions about this are:

  1. This can be done by moving outer loop inside db.transaction. Will it be better and why?
  2. Is it possible to add multiple rows in single query like multiple values in single MySQL INSERT? Or I should not worry about this.
3

1 Answer 1

3

This can be done by moving outer loop inside db.transaction. Will it be better and why?

yes. much better. 1) creating a transaction is not cheap. 2) looping async is generally bad .

Is it possible to add multiple rows in single query like multiple values in single MySQL INSERT? Or I should not worry about this.

don't worry. Multiple rows workaround are syntactic sugar. No performance benefit. Better loop it under one transaction.

Again do not loop executeSql, it is async.

Sign up to request clarification or add additional context in comments.

1 Comment

I am facing problem in this that when i insert multiple rows in db.transaction function than it only inserting last row multiple times. I agree with you that due to async it is performing this king of behavior,can you please let me know what would be the solution and if you can give any sample than it will help me out in better way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.