NodeJS Json数据没有完全插入到数据库中

2天试图find解决我的问题。 我从网站请求数据(json)。 他们返回罚款和json是有效的,但是当我尝试将它们插入数据库几乎10%不插入。 我不知道该怎么做,我甚至尝试过与相同的结果的PHP。 任何帮助世界不胜感激。

select数据属性var result = obj.data后,这是json ouptut; 引擎收录

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 + '")'); } } } }); 

欢迎来到SO。

有可能是你错过了一个错误。 您请求插入,但随后放行。 connection.query允许一个函数作为它的第二个参数,这是一个callback。 看看下面的一行

 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两个错误和行,每次这被称为。 你现在可以看到为什么有些结果没有写入数据库,而且会显示为错误。