0

データベースに情報を挿入しようとすると、SQLException:GeneralErrorが発生するという問題が発生しています。問題は、文字列にアポストロフィが含まれていることであると判断しました。これが私の更新ステートメントです:

AniDB.updateTbl("UPDATE SeriesTbl SET SeriesSynopsis = '" + synop + "' WHERE  SeriesID = " + sID);

SeriesSynopsisには、すべて異なる文字列を持つ多くのレコードが含まれています。議論のために、あるレコードは「トムは猫が好きではない」であり、別のレコードは「ティモシーは猫をあまり気にかけなかった」です。アポストロフィはさまざまな位置にあり、SQLステートメントに干渉しています。これを修正する方法について何かアイデアはありますか?

4

2 に答える 2

2

試す

AniDB.updateTbl("UPDATE SeriesTbl SET SeriesSynopsis = '" + synop.replace("'", "''") + "' WHERE  SeriesID = " + sID);

2つの引用符で引用符をエスケープできます。

于 2012-08-11T15:50:33.203 に答える
1

このページをお読みください:https ://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java

プリペアドステートメントの使用法を学ぶことで、当面の問題を解決するだけでなく、コードの脆弱性を大幅に軽減し、コードを簡素化して移植性を高め、データベースの効率を向上させることができます。SQLインジェクションの問題は緊急であると思います...時間を費やす価値は十分にあります。

于 2012-08-11T16:00:25.370 に答える