如何使用节点js在mysql中使用数组更新多行

时间:2017-08-21 04:19:54

标签: javascript mysql arrays node.js loops

我正在尝试使用UPDATE来更新表(商店)中的3个不同列。我想添加一个openingTime,closingTime和phoneNumber ......但是我想通过storeId添加它们,这已经存在于表中。我是否需要根据storeId对每个条目进行单独调用。或者我可以对表进行一次调用并遍历每个storeId吗?

这是我到目前为止所拥有的。

var arraythatcontainsEverything = [];

var locations = ["randomA", "randomB", "randomC", ];
var openingTime = ["10:00", "10:00", "10:00"];
var closingTime = ["24:00", "24:00", "24:00"];
var phoneNumber = ["123-4567", "123-6789", "123-9999"];
var ids = ["210", "213", "234"];


var q = 'UPDATE stores SET openingTime=?, closingHours=?, phoneNumber=?  WHERE StoreId=?';
con.query(q, [array that contains everything], function(err, results){
if(err) console.log(err); 
if (DEBUG >= 2 )console.log("finished inserting hours and phone number into database");
                con.end();
)};

1 个答案:

答案 0 :(得分:0)

  

出于安全原因,禁用对多个语句的支持(它   如果未正确转义值,则允许SQL注入攻击。   要使用此功能,您必须为连接启用它:

var connection = mysql.createConnection({multipleStatements: true});

Here is the MySQLJS Multiple Statement Queries Documentation

启用后,您必须构建一个(多个语句)查询字符串。

它非常简单,如果您要循环构建每个独立查询并将其附加到最终查询字符串,我建议使用下划线。