2016-04-07 6 views
-1

私は取得したい値をデータベースから取得してから、ユーザーの入力から取得して、以前データベースにあった値の場所。私はこれがあまりにも確かではない準備されたステートメントで行うことができると聞いた。準備された文を使用してmysqlデータベースの値を更新するにはどうすればいいですか?

ありがとうございました。

+1

はい、それはすることができます。これまでに何を試しましたか? –

+0

ようこそStackOverflowへ。 [ヘルプ]にアクセスし、[ツアー]にアクセスして[質問]を読んでください。あなたの質問は、「私は自分自身でこれを見るにはあまりにも怠惰だし、誰かに私のためにそれを書いてもらうことができるかもしれない」のように読んでいます。試してもうまく動作しない場合は、エラーメッセージや予想外の動作と一緒に行ったことを投稿してください。お手数をおかけします。しかし、まず自分で努力する必要があります。 –

+0

準備されたステートメントの使い方はあまりありません。私はそれをデータベースの価値を読み取ってから値を差し引いて書き直すことで、それを大いに実現しました。私は準備されたステートメントでコードを削減しようとしています。 –

答えて

0

文が頻繁に再利用される場合、プリペアドステートメントを作成し、各コールの値を更新することにより、SQL文を解析するデータベースの処理時間を避けることができます。変数値のプレースホルダ、およびSQLは、プリペアドステートメントの作成時にのみ解析されます。次のように

stm = conn.prepareStatement("update MyTable set Col1 = Col1 - ? where KeyCol = ?"); 

は、その後、新しいキー値を持っており、オフセット関連するたびに、あなたはそれらを設定します。

stm.setInteger(1,newOffset); // assign newOffset value to first ? 
stm.setInteger(2,keyVal); 
stm.execute(); // executes the statement with the specified values 
+0

の重複がたくさんあります。 –

0

を私たちは、あなたのテーブルと属性が何であるかを知っておく必要があります。それは、各ユーザがポイントの一定数を持つテーブルと呼ばれるユーザーのようなものだった場合、あなたは次のようにSQL文を実行することができます:

SELECT points FROM users WHERE username='somename'; 

次に、あなたの新しいポイントとそのスコアを更新することができ、変数「newpoints」により、このような何かをやって:

UPDATE users SET points = newpoints WHERE username = 'somename'; 

このサイトは、いくつかの本当に便利なコマンドがあります:http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm

+0

リンクが大いに役立ちます –

関連する問題