2017-09-18 8 views
0

データベースに "情報"を送信する際に更新したいテーブルがあります。サーバに送信されるデータのような構造の二次元アレイの形態である:Express.jsで一連の値とプリペアドステートメントを使用してMySQLのテーブルを更新するにはどうすればよいですか?

[ [1, 78], 
[2, 77], 
[3, 76]] 

右に左IDと番号の数字は、位置/スコアです。これらの値はどちらも既に私のテーブルで「ID」と「スコア」として定義されています。私がしたいのは、元の番号を新しい番号で上書きすることです。私は準備済みのステートメントを使用してこれを実行しようとしていますが、このクエリを実行するときにエラーが発生します。

db.query('UPDATE rankings SET ID=?, score=?', [scoreTable], function(err, result) { 
    if(err) throw err; 
    console.log(result); 
    }); 

エラーはこれです:

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 '(2, 78), (4, 77), (3, 76), (5, 75), (6, 74), (7, 73), (8, 72), (9, 71), (10, 70)' at line 1 

エラーの末尾の値は、私が使用しようとしている配列からです。

+0

'UPDATEランキングSETのID = ?,スコアは= 'あなたは、基本的には、同じID&同じスコアを持つすべてのレコードを更新すると言って..:?あなたはWHEREが必要... IOWは:私たちはどのような記録を更新しているが?それはIDですか? – Keith

答えて

0

データベースで作業するときに最も重要なことの1つ:テーブルからUPDATEまたはDELETEにする場合は、WHERE句があることを確認する必要があります。そうでなければUPDATEすべて。

enter image description here

+0

あなたはとても鋭い仲間です – brekki

+0

私の配列を更新したので、最初の値はスコアになり、2番目のID /クエリは ''UPDATEランキングSET score =ですか? WHERE ID =? ' 'スコア/ IDに対応していますが、まだ動作しません。他のアドバイス/共有するmemeの組み合わせを持っていますか? – brekki

+0

侮辱ではありません、私の謝罪。申し訳ありません、このテーブルに新しいデータを追加しようとしていますか? – 0x11

関連する問題