我必须更新一个表中的多行(最多32行左右)。当前我的代码可以删除指定的行,但不能插入。我错过什么了吗?我的代码如下所示:
connection.query("DELETE FROM items WHERE record_id = ?", id, function (err, result) {
if(err)
{ console.log("ERROR UPDATE" + err); }
else
{
console.log("entered UPDATE");
// Loop through Hour Difference
for (var i = 1; i <= hours; i++) {
// Avoiding Add in the first iteration
if (i != 1) {
start_date_time.add(1, "hours");
}
// Convert Date Format to MYSQL DateTime Format
var myDate3 = moment(start_date_time.format('YYYY-MM-DD HH:mm:ss')).format("YYYY-MM-DD HH:mm:ss");
console.log('Index update [' + i + ']: ' + myDate3);
var data = {
name: req.body.site_name,
remarks: req.body.remarks,
date_part: myDate3,
record_id: id
}
connection.query("INSERT INTO items SET ?", [data], function (err, result) {
if (err) {
console.log(err);
} else {
console.log('Index [' + i + ']: INSERTED to update');
}
});
}
}
});
2条答案
按热度按时间uqdfh47h1#
您的insert查询不正确。插入查询的正确语法是,
读取sql insert into语句。
如果您正在使用
SET
它应该是一个更新查询。更新查询的正确语法是,读取sql update语句
jtw3ybtb2#
所以在您的示例中,您同时使用异步和同步代码,这是个坏主意。
同时感谢@roshana你的查询不好,所以我修正了它。
要解决这个问题,可以使用两种方法。
使用异步/等待
使用承诺
下面是一个基本的例子:
使用这两种方法
你也可以这样做。
希望这有帮助。