[英]How do I break up a JSON object to insert into a MySQL table?
我有一些 JSON 从这里回来:
// Now Get Only New Listings
finalArray = _.difference(existingResults, items);
我需要将这些值插入其中:
一些进来的数据不能填满所有的列。 在这种情况下,我想将它们留空。
这是数据的样子(可能是众多数据之一)......
{
price: '$6,000',
title: '1999 Jeep Wrangler SE Sport Utility 2D',
location: 'Auburndale, Florida',
miles: '12K miles',
imgUrl: 'http://www.example.com/pic.jpg',
itemURL: '/products/item/36427/'
}
所以我需要弄清楚如何通过每个 JSON object 来 go,然后插入正确的列。
var insertQuery = 'Your code here! :) ';
我想该查询需要在某个地方循环吗? 还是一个大的插入语句?
任何建议或代码将不胜感激。 谢谢。
使用:NodeJS 和 JawsDB MySQL(如果信息很重要)
以下方法仅在您的有效负载没有任何嵌套对象时才有效。使用 ES6 Maps 来完成这项工作。 我已使用connection.escape()
删除 JSON 中的任何可注入脚本,以防止 SQL 注入攻击。 我希望您已经为 node.js 安装了 mysql连接器。
const mysql = require('mysql');
const connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
const payload = {
price: '$6,000',
title: '1999 Jeep Wrangler SE Sport Utility 2D',
location: 'Auburndale, Florida',
miles: '12K miles',
imgUrl: 'http://www.example.com/pic.jpg',
itemURL: '/products/item/36427/'
}
const map = new Map(Object.entries(payload));
const keys = map.keys();
const values = map.values();
const insertQuery = `
INSERT INTO TABLE_NAME (${connection.escape(keys.next().value)},
${connection.escape(keys.next().value)},
${connection.escape(keys.next().value)},
${connection.escape(keys.next().value)},
${connection.escape(keys.next().value)},
${connection.escape(keys.next().value)})
VALUES (${connection.escape(values.next().value)},
${connection.escape(values.next().value)},
${connection.escape(values.next().value)},
${connection.escape(values.next().value)},
${connection.escape(values.next().value)},
${connection.escape(values.next().value)});
`
connection.query(insertQuery, function (error, results, fields) {
if (error) throw error;
// ...
});
console.log(insertQuery);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.