我在我的程序中有问题。我需要将数组的所有值传递给数据库。这是我的程序。
exports.post = function(req, res){
var obj = {};
var eacode = req.body.eacode;
db.all("SELECT * FROM localarea_listings WHERE eacode= ? ",eacode, function(err,rows2){
rows2.forEach(function (row2) {
var hcn = row2.hcn;
var shsn = row2.shsn;
console.log(hcn);
console.log(shsn);
});
db.all("UPDATE localarea_listings SET INTERVIEW_STATUS = ? WHERE eacode = ?
and hcn =? and shsn = ?",[req.body.INTERVIEW_STATUS, req.body.eacode,
req.body.hcn, req.body.shsn],function(err,rows){
if (err)
{
console.log("Error Updating : %s ",err );
}
else
console.log("Success updating localarea_listings");
});
});
};
数据将根据数据库localarea_listings.db中的变量eacode进行处理
假设值hcn分别是1,2,3,4,5,而shsn分别是6,7,8,9,10。
当我打印hcn和shsn时,该值将显示我想要的内容,即
hcn = [1,2,3,4,5]和shsn = [6,7,8,9,10]
问题将在这里开始,当我更新它时,它只会更新数组的第一个值(对于hcn为1,对于shsn为6)。我尝试使用row2 [0] .hcn和row2 [0] .shsn,但是会导致错误。
希望我的问题清楚。谢谢!
最佳答案
您需要将更新移到forEach中
exports.post = function(req, res) {
var obj = {};
var eacode = req.body.eacode;
db.all("SELECT * FROM localarea_listings WHERE eacode= ? ", eacode, function(err, rows2) {
rows2.forEach(function(row2) {
var hcn = row2.hcn;
var shsn = row2.shsn;
console.log(hcn);
console.log(shsn);
db.all("UPDATE localarea_listings SET INTERVIEW_STATUS = ? WHERE eacode = ? and hcn = ? and shsn = ? ",[req.body.INTERVIEW_STATUS, req.body.eacode, hcn, shsn], function(err, rows) {
if (err) {
console.log("Error Updating : %s ", err);
} else
console.log("Success updating localarea_listings");
});
});
});
};