在我的节点模块中,我想对我的sql数据库进行更新查询。它相对较大,我的synax看起来像这样:
connection.query("UPDATE myTable SET room_price = ?,
adult_minimum = ?, adult_standard = ?, adult_additional = ?,
child_additional = ?, close_arrival = ?, close_departure = ?,
stop_sale = ?, min_stay = ?, max_stay = ? WHERE hotel_id = ? AND
rate_plan = ? AND room = ? AND date = ?",
[toUpdate],function(err,results){
if(err){return console.log(err)}
else
{
res.sendStatus(200);
}
});
为了推送所有值,我使用一个数组数组,一个数组中的样本数据如下所示:
[456,100,100,100,100,false,true,false,'1','456',1111,'rate plan name
three','Room Number One','2017-08-02' ]
然后我收到了这个错误:
{ Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check
the manual that corresponds to your MariaDB server version for the
right syntax to use near '(789, 100, 100, 100, 100, true, false,
true, '1', '999', 1111, 'rate plan name t' at line 1
at Query.Sequence._packetToError
我不知道在哪里可以犯一个语法错误,因为我之前创建了非常相似的更新功能并且它有效。我也在我的数据库引擎中手动输入了这个查询,一切都运行良好。可以在这里更新大量的列吗?
答案 0 :(得分:1)
不,大量列不会在更新查询中产生问题。
我猜错了
rate plan name t
您最初打算插入/更新的字符串
rate plan name three
在字母t
和h
也许你在那时插入了新的一行?
答案 1 :(得分:0)
如果你有数组数组,你应该为每个数组运行查询
big_array.forEach(small_array => {
connection.query('query', small_array, callback);
})