Fastest way to get JSON object into mysql using node Fastest way to get JSON object into mysql using node mysql mysql

Fastest way to get JSON object into mysql using node


You could do something like this:

for(var i = 0; i < values.length; i++){    var post  = values[i]    var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) {         // Finish    });}

EDIT

This is how you inserts multiple 'posts' at once.

INSERT INTO posts (type, details)  VALUES  ('Helen', 24),  ('Katrina', 21),

You would have to loop through the first value to get the names like this.

var names = [];for(name in values[0]){names.push(name);// That would give you name, email, id}

Then you would have to create your own string to insert.

var newvalues = [];for(var i = 0; i < values.length; i++){    newvalues.push('(' + values[i].join(',') + ')');}

Then to execute the query:

connection.query('INSERT INTO posts (' + names.join(',') + ') VALUES ' + newvalues.join(',') , function(err, rows, fields) {  // Result});

You would have to test the code yourself, this is just how you would do it.


Look at the 'Custom Format' part here. If you notice, this example using named placeholders in the query, allowing you to pass an object, and the placeholders are replaced with the matching attributes from the object. I've also pasted the relevant section for clarity:

connection.config.queryFormat = function (query, values) {  if (!values) return query;  return query.replace(/\:(\w+)/g, function (txt, key) {    if (values.hasOwnProperty(key)) {      return this.escape(values[key]);    }    return txt;  }.bind(this));};connection.query("UPDATE posts SET title = :title", { title: "Hello MySQL" });


You could create a small function that maps an array with that format to an insert statement.

You can easily loop through the fields and use some string concatenation.