2017-08-21 9 views
0

私のテーブル(ストア)の3つの異なる列を更新するのにUPDATEを使用しようとしています。 openingTime、closingTime、およびphoneNumber ...を追加したいと思いますが、テーブルに既に存在するstoreId経由で追加します。 storeIdに基づいて各エントリを個別に呼び出す必要がありますか。それとも、テーブルへの呼び出しを1回行って、各storeIdをループすることは可能ですか?ノードjsを使用して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

関連する問題