2017-08-21 21 views
0

我試圖使用UPDATE更新我的表(商店)中的3個不同的列。我想添加一個openingTime,closingTime和phoneNumber ...但我希望它們通過storeId添加,該表已經存在於表中。我是否需要根據storeId對每個條目進行單獨調用?或者是否可以對錶進行一次調用並遍歷每個storeId?我如何使用節點j在mysql中使用數組更新多行

這是我到目前爲止。

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(); 
)}; 

回答

0

支持多個語句是出於安全考慮禁用(它 允許SQL注入攻擊,如果值不正確地轉義)。 要使用此功能,您必須啓用它爲您的連接:

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

Here is the MySQLJS Multiple Statement Queries Documentation

一旦啓用,你就必須建立一個(多表)查詢字符串。

它真的很容易,如果你要循環建立每個獨立的查詢並將其追加到最終的查詢字符串,我會建議使用下劃線的每個。

+0

謝謝你的迴應。對不起,延遲的迴應! – VK1

+0

@VincentKuneen你試過了嗎?有這個問題解決了嗎? :) – EMX

+0

糟糕,我忘了標記它正在解決。我能夠得到它的工作。再次感謝! – VK1