0

现在我遇到了一个问题,尝试将一些信息插入数据库给我一个 SQLException:一般错误。我已经确定问题是我的字符串中有撇号。这是我的更新声明:

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 回答