I have arrays stacked in 1 array and I would like to insert each array per column in MySQL. I have reached to insert all data in arrays to 1 column, but I want to insert an array per column. Please see the screenshot and code below.
con.connect(async(err)=>{
const x = await getStock()
if(err){
console.log(err);
return err;
}else{
console.log("DB ok");
}
console.log("connected");
x.filter(item=>item===undefined?false:true).map(item=>item.forEach(item=>{
const sql ="INSERT INTO test (testCol1) VALUES ?";
const values=[
[item]
];
con.query(sql,[values],(err,result)=>{
if(err)throw err;
console.log("this have been recorded"+result);
});
}));
});
I just found a solution for this case. It can be a little bit confusing but it is working. Maybe there exists way easier and understandable solution, but this is the solution I have at the moment.
In the code above I was using only 1 array iterator, which was returning me an array. I decided to iterate the returned array to get each integer and insert data into MySQL, also the (test${i+1})
sets array into necessary column.
x.filter(item=>item===undefined?false:true).forEach((item,i)=>{
item.forEach(item=>{
const sql =`INSERT INTO test (test${i+1}) VALUES ?`;
const values=[
[item]
];
con.query(sql,[values],(err,result)=>{
if(err)throw err;
console.log("this have been recorded"+result);
});
})
});