[英]get JSON data from mysql using nodejs mysql module
我有一个大的JSON对象,我从文件中读取文本,将其解析为JSON并以blob数据类型存储在mysql数据库中。 当我在mysql控制台中执行SELECT * FROM *table*
时,我在SELECT * FROM *table*
中看到[object Object]
并以字符串形式上载JSON会出错。
ER_PARSE_ERROR:您的SQL语法有错误。 检查与您的MySQL服务器版本相对应的手册,以获取在'1000GenomeFreq“:”“,” dbsnpFreq“:”“附近使用的正确语法
“ labValidationInfo”:null,第1行的“ yesFrequ”
如何使用node.js将JSON上传到MySQL数据库?
var id=0;
var json={};
var name,des;
io.on('connection', function(socket){
socket.on('username', function(un){
console.log("Username: "+un);
var l=un.length;
console.log(l);
json=JSON.parse(un);
name=json.label.name;
des=json.label.description;
console.log(name);
switch(name){
case 'VUS_I':id=3;
break;
case 'VUS_II':id=4;
break;
case 'VUS_III':id=5;
break;
case 'VUS_IV':id=6;
break;
}
connection.query('insert into variant_card(data,effectID)values("'+json+'",'+id+')', function(err,result) {
if(err) {
console.log('adsfdas'+err);
socket.emit('wru');
} else {
if(result==false){
console.log("Error uploading file");
socket.emit('wru');
} else {
console.log("File uploaded into database");
socket.emit('done');
}
}
});
//socket.emit('pwd');
});
});
JSON文件的一部分是
{
"1000GenomeFreq":"",
"dbsnpFreq":"",
"labValidationInfo":null,
"yesFrequency":1,
"functionallyValidated":false,
"mutationType":"changeThis",
"conservationScores":null,
"isDominantSegregating":true,
"literatureKbCount":0,
"exomeServerFreq":"",
"rsID":"",
"notations":[{
"nmTranscripts":["NM_033507"],
...
这就是为什么永远不要将值直接串联到查询中的原因(SQL注入攻击)。
相反,您应该使用占位符:
connection.query('insert into variant_card set ?',
{ data: JSON.stringify(json), effectID: id },
function(err,result) {
// ...
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.