3

I've tried to insert variables into multiple rows at once in Web SQL database but with all known to me methods I'm getting errors:

("INSERT INTO tab (a,b) VALUES (?,?),(?,?)",[v1,v2,v3,v4])
>> could not prepare statement (1 near ",": syntax error)

("INSERT INTO tab (a,b) VALUES (?,?,?,?)",[v1,v2,v3,v4])
>> could not prepare statement (1 4 values for 2 columns)

("INSERT INTO tab (a,b) VALUES (?,?)",[v1,v2,v3,v4])
>> number of '?' does not match arguments count

Which one is correct for Web SQL and where is my mistake?

1 Answer 1

4

As table tab has two columns you can specify only two values to be inserted as a row not 4. Following query will work:

("INSERT INTO tab (a,b) VALUES (?,?)",[v1,v2])

You can execute this query multiple times in a single transaction to add multiple rows to improve performance of overall query and ensure integrity. Hope this helps!!!

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

5 Comments

I know but i want to put many rows in one sql query //thanks, question was not clear - edited
queries are asynchronous, aren't they? So If I'd like to fire callback after all of them I'd need to count how many successed and how many failed. for 1000 entries at once it doesn't seem to be best solution
Inserting multiple rows in one INSERT statement is not supported in WEB SQL. You can refer to this link stackoverflow.com/questions/10031605/…
mhm... :C thanks for answer, I hope it won't be performance bottleneck
Actually, the first syntax works in some implementations, like Safari. See gpickin.com/index.cfm/blog/…

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.