2017-11-06 19 views
0

テーブル内の単一の列を挿入/更新する方法はありますか私は配列の値から列を埋めるしたい。 enter image description herejavaテーブルの列を配列の1つの列に挿入/更新する

グラムテーブルを挿入/更新したいだけです。

私はすでにこれを試みたが、働いていない:

String sql="INSERT INTO total_ingredient (inGram) VALUES('"+subtractIngredent[0]+"'," 
     + " '"+subtractIngredent[1]+"','"+subtractIngredent[2]+"'," 
     + "'"+subtractIngredent[3]+"','"+subtractIngredent[4]+"'," 
     + "'"+subtractIngredent[5]+"','"+subtractIngredent[6]+"',)"; 

はあなたに感謝。

+2

挿入する行と同じ数だけ挿入を挿入します。報告書を覚えておいてください。あなたのコードは読みにくく、値に引用符が含まれていると破損し、SQLインジェクション攻撃の脆弱性があり、プリペアドステートメントを使用するソリューションよりも効率が悪いです。 https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html –

答えて

0

これは、のように記述する必要があります:あなたのコードは、任意のサイズの配列を扱うようにするには

String sql="INSERT INTO total_ingredient (inGram) VALUES('"+subtractIngredent[0]+"')," 
     + "('"+subtractIngredent[1]+"'),('"+subtractIngredent[2]+"')," 
     + "('"+subtractIngredent[3]+"'),('"+subtractIngredent[4]+"')," 
     + "('"+subtractIngredent[5]+"'),('"+subtractIngredent[6]+"')"; 

、あなたはループを使用してconside shrould。 JB Nizerが述べたように、自分でクエリを生成するよりも準備済みの文を使うことを検討してください。

+0

次に、プリペアド・ステートメントを使用しないという貧弱なソリューションを提案する理由は何ですか? –

+0

彼の質問は、C#やJavaなどの言語からMySQLを利用するよりも、1つのクエリで複数の行を挿入する方法です。私は、彼がどの言語を使っているのかを知っていれば、準備されたステートメントを使っています。 MySQLはC#、Java、PHPなどから使用することができ、それぞれにデータベースとのやり取りの独自の方法があります。 –

関連する問題