2017-11-05 4 views
-3

Das Verschieben von Objekten in ein Array funktioniert hier korrekt, aber ich bekomme weiterhin MySQL-Abfragefehler bezüglich der Syntax. Nicht sicher, ob das Array von Objekten ein Array von Arrays sein soll oder ob etwas in der Abfrage repariert werden muss.Knoten MySQL: Wie fügt man mehrere Datenzeilen gleichzeitig ein?

var array = []; 

    for(var i = 0; i < data.length; i++) { 
    array.push(
     { 
     type: data[i].category, 
     name: data[i].name 
     } 
    ); 
    }; 

    var query = 'INSERT INTO table (type, name) VALUES ?'; 
    connection.query(query, array, 
    function(err, res) { 
    if (err) throw err; 
    connection.end(); 
    }); 
+0

Können Sie Screenshot der Abfrage Fehler posten und beraten, was jedes entsprechende Feld in der Datenbank Setup als (Text VS blob VS integer, etc)? –

+0

Typ ist ein reserviertes Schlüsselwort, https://dev.mysql.com/doc/refman/5.7/en/keywords.html, verwenden Sie also entweder ein Nicht-Schlüsselwort oder nennen Sie es richtig, https: //dev.mysql. com/doc/refman/5.7/de/identifiers.html ... – CBroe

+0

Der 'Typ', den Sie ersetzen möchten, befindet sich nicht in der JavaScript-Schleife, sondern in Ihrer mysql-Anweisung, die als Abfragevariable definiert ist. –

Antwort

0

Ich habe es herausgefunden. Ich musste ein Array von Arrays erstellen und das einfügen, ohne das Objekt und die Schlüssel. Zum Beispiel

for(var i = 0; i < data.length; i++) { 
    array.push(
     [ 
     data[i].category, 
     data[i].name 
     ] 
    ); 
    }; 

und

connection.query(query, [arrayOfAlcohols], 
    function(err, res) { 
    if (err) throw err; 
     connection.end(); 
    }); 
Verwandte Themen