2

ニュースWebサイトのヘッドラインをデータベースに保存するコードを作成しました。ただし、見出しには(')一重引用符と二重引用符も含まれることがあり、これにより、テーブルに挿入しようとするとエラーが発生します。

これを回避するための最良の方法は何でしょうか?

これが私のコードです:

Statement st = con.createStatement();
int val = st.executeUpdate("INSERT into imageinfo(imageurl,title,headline,website) VALUES('"+imageurl+"','"+title+"','"+headline+"','"+website+"')");
4

2 に答える 2

4

SQL クエリがプリコンパイルされているプリペアド ステートメントの使用を検討する必要があります。そもそもデータの送信元によっては、SQL インジェクションを防ぐこともできます。

準備済みステートメントを使用するもう 1 つの利点は、同じステートメントを実行するたびに異なるパラメーターを使用して再利用できることです。

于 2012-07-27T06:21:01.843 に答える
0

バックスラッシュを使用して(sql命令内で)文字をエスケープできると思います...

もう1つの方法は、一重引用符を含む値を二重引用符で囲むことです。

于 2012-07-27T06:17:31.123 に答える