- - PR -
フォームに入力した文章をMySqlに記録
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-03-20 18:09
ttskと申します。
"フォームに入力した文章をMySqlに記録する" という初歩的なことを試しています。 <% String MyText = request.getParameter("MyText");//MyTextがフォームに入力した値 out.println(MyText);//jspに渡ってきているか確認 String sql = "insert into testtable values (1,MyText,12345)"; ...... ...... %> 以上の部分でmysql:test.testtableに書き込みを試みますが、 " java.sql.SQLException: Unknown column 'MyText' in 'field list' " とエラーがでてしまいます。MyText変数の代わりに、(フォームを使わずに) "insert into testtable values (1,'spring has come',12345)";などとすると書き込みはできます。 変数を使って書き込む方法をお教えください。 環境: Win2000 SP4 Tomcat5.0.30 MySql5.0.0-alpha-nt jdk-1.5.0 [ メッセージ編集済み 編集者: ttsk 編集日時 2005-03-20 18:22 ] |
|
投稿日時: 2005-03-20 19:34
String sql = "insert into testtable values (1,'" + MyText + "',12345)";
でよいと思います。 変数と文字列は連結してあげましょう。 |
|
投稿日時: 2005-03-20 20:11
ご回答ありがとうございます。
さっそく試しました。書き込めました。 感謝です。 ttsk |
|
投稿日時: 2005-03-21 04:14
どもです。がるです。
んっと…もう見てないかなぁとは思いつつ、ほかの方のためにも なると思うので、一言。 「フォームに入力した文章」を未加工のまま(つまり、データをそのまま) SQLで書き込もうとすると、あっというまに脆弱性が発生します。 最低限、'とか;とか\とか(その他DBMSによっていくつか)は、きちんと 適切なものに変換をかけてあげてください。 「サニタイジング(sanitizing)」とかって単語をGoogleあたりで 検索すると詳細が出てくるかと思いますので :-P |
|
投稿日時: 2005-03-21 17:49
アドバイスありがとうございます。
公開の掲示板類で使用するときは、サニタイジング機能をいれないといけませんね。 //手軽な(=料金の安い)レンタルサーバーでTomcatの使えるところ、ご存知ですか? ttsk |
1
