/ / Wie füge ich mehrere Zeilen in die Web SQL-Datenbank ein? - Javascript, HTML5, Web-SQL

Wie fügt man mehrere Zeilen in die Web SQL-Datenbank ein? - Javascript, HTML5, Web-SQL

Ich habe ein JavaScript-Objekt mit mehreren Datenzeilen und möchte es in die Web-SQL-Datenbank einfügen. So sieht mein Code aus.

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

Meine Fragen dazu sind:

  1. Dies kann durch Verschieben der äußeren Schleife nach innen erfolgen db.transaction. Wird es besser sein und warum?
  2. Ist es möglich, mehrere Zeilen in einer einzelnen Abfrage hinzuzufügen, wie mehrere Werte in einem einzelnen MySQL INSERT? Oder ich sollte mir darüber keine Sorgen machen.

Antworten:

3 für die Antwort № 1

Dies kann durch Verschieben der äußeren Schleife in db.transaction erfolgen. Wird es besser sein und warum?

Ja. viel besser. 1) Das Erstellen einer Transaktion ist nicht billig. 2) Das Schleifen von Asynchronen ist im Allgemeinen schlecht.

Ist es möglich, mehrere Zeilen in einer einzelnen Abfrage hinzuzufügen, wie z. B. mehrere Werte in einem einzelnen MySQL-INSERT? Oder ich sollte mir darüber keine Sorgen machen.

Machen Sie sich keine Sorgen. Mehrere Workarounds mit mehreren Zeilen sind syntaktischer Zucker.

Wiederholen Sie die Schleife nicht mit executeSql, es ist asynchron.