我一直在使用NodeJS將JSON數據插入MySQL數據庫。 我得到這個錯誤:從JSON結構插入多行到MySQL
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''[{\"id\":\"d3f3d\",\"code\":\"' at line 1
我從url.json
使用request
節點模塊獲取JSON數據,我試圖將數據存儲在MySQL數據庫。
//mysql connection setup
var connection = mysql.createConnection({
host : "localhost",
port: "3306",
user : "root",
password : "root",
database : "db",
multipleStatements: true
});
request('url.json', function (error, response, body) {
if (!error && response.statusCode == 200) {
//console.log(body)
}
var sql = "INSERT INTO table (id, code, country_name, city) VALUES ?";
var data = JSON.parse(body);
var responseJson = JSON.stringify(data.response.docs);
var query = connection.query(sql, [responseJson], function(err, result) {
if(err) throw err;
console.log('data inserted');
});
console.log(query.sql);
});
的數據被記錄爲'''[{\"id\":\"d3f3d\",\"code\":\"'... }]'
。我認爲這可能是錯誤的根源。
JSON結構看起來是這樣的:
{
"header":
{
"file1":0,
"file2":1,
"subfiles":{
"subfile1":"true",
"subfile2":"true",
}
},
"response":
{
"number":678,
"start":0,
"docs":[
{
"id":"d3f3d",
"code":"l876s",
"country_name":"United States",
"city":"LA"
},
{
"id":"d2f2d",
"code":"2343g",
"country_name":"UK",
"city":"London"
}
]
}
}
我該如何解決這個問題?
謝謝。
我同意。我幾分鐘前添加了一個答案,但沒有意識到docs對象已經是一個數組了,所以我將其刪除了。無論如何,stringify是問題。 +1。 –
我做了這些更改,並且再次出現錯誤:ER_PARSE_ERROR:您的SQL語法中有錯誤;檢查對應於你的MySQL服務器版本的手冊,在''id' ='d3f3d','code' ='l876s',''在第1行'附近使用正確的語法' – corry
我已經更新了答案。 – gnerkus