2天试图找到问题的解决方案。 我从网站请求数据(json)。 它们返回正常,json有效,但是当我尝试将它们插入数据库时,几乎10%都没有插入。 我不知道该怎么做,我甚至尝试过同样的结果。 感谢任何帮助世界。谢谢。
选择数据属性var result = obj.data后,这是json ouptut; pastebin
var request = require("request");
var fs = require('fs');
var sleep = require('system-sleep');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'feeds',
timezone: 'Z'
});
request.post({
url: "xxx",
headers: {
"Content-Type": "application/json"
},
body: '{"xx": "true", "xxx": "true"}'
}, function(error, response, body) {
var obj = JSON.parse(body);
var result = obj.data;
console.log(result);
for (var i = 0; i < result.length; i++) {
var object = result[i];
for (property in object) {
var value = object[property];
var pid, pname;
if (property == "id") {
pid = value;
}
if (property == "name") {
pname = value;
}
if (property == "xxxxx") {}
if (property == "xxxxxxxx") {
connection.query('INSERT INTO tournaments(id, name) VALUES (' + pid + ', "' + pname + '")');
}
}
}
});
&#13;
答案 0 :(得分:0)
欢迎来到SO。
您可能错过了一个错误。您请求插入,但然后放手。 connection.query
允许函数作为其第二个参数,这是一个回调。查看以下行
connection.query( 'SELECT * FROM some_table', ( err, rows ) => {
// do something with the results here
} );
对你而言,它看起来像是:
connection.query('INSERT INTO tournaments(id, name) VALUES (' + pid + ', "' + pname + '")', function(err, rows){
console.log('Successful write', rows);
console.error('Error! This did not write because: ', err);
})
每次调用它时,都应该将console.log设置为err和rows。您现在可以看到为什么有些结果没有写入数据库,并且它们会显示为错误。