我正在查询数据库中的一些数据并插入数据。每当用户插入“我有一个问题,查询没有重新调整。
我该怎样摆脱它?我应该使用:string.replace(''', '"')
吗?或任何其他技巧?
提前致谢。
答案 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
。