处理包含撇号SQL的大字符串

时间:2012-08-11 15:49:24

标签: java sql

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

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

SeriesSynopsis包含许多记录,所有记录都有不同的字符串。让我们说,为了争论,一个记录是“汤姆不喜欢猫”,另一个记录是“蒂莫西对猫不太关心”。撇号处于不同的位置,并且干扰了我的SQL语句。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:2)

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

您可以使用2引号转义引号。

答案 1 :(得分:1)

请阅读此页:https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java

除了解决您的直接问题之外,学习使用预准备语句将使您的代码更不容易受到攻击,可以简化代码并使其更具可移植性并可以提高数据库的效率。我认为SQL注入问题是紧急的...非常值得花时间。