无法识别包含'的查询字符串

时间:2011-09-30 14:29:26

标签: sql

我正在查询数据库中的一些数据并插入数据。每当用户插入“我有一个问题,查询没有重新调整。

我该怎样摆脱它?我应该使用:string.replace(''', '"')吗?或任何其他技巧?

提前致谢。

2 个答案:

答案 0 :(得分:4)

您应该使用参数化查询。在查询中插入未处理的用户输入是dangerous,这是SQL-Injection攻击的一扇门。

这些是

形式的查询
SELECT * FROM USERS where USER_ID = ?

?的值是通过query.setString(1, userId)调用以编程方式设置的,驱动程序负责正确地转义所有内容。这不是你想肩负的负担。

答案 1 :(得分:2)

除了Xavi López发布的内容(你真的应该记住这一点),要在字符串中使用单引号,你需要写两个单引号,例如:

myString := 'I''m writing an answer';

这代表字符串I'm writing an answer