所以我正在制作一个程序,它将GUI中的用户输入作为参数。如果用户输入带有撇号的单词或句子,我该如何处理?
我用它把一些东西输入到数据库中,例如:
INSERT INTO users (firstname, lastname) VALUES ('"+firstNameString+"', '"+lastNameString+"')
如果用户名类似于John O'Neill,则会出现错误。考虑到我无法控制用户可能输入的内容,我该如何处理这个撇号?
为了避免此类问题,请使用PreparedStatements。通常情况下,你的代码看起来像这样:
....
PreparedStatement ps = null;
try {
ps = connection.prepareStatement("INSERT INTO users (firstname, lastname) VALUES (?,?)");
ps.setString(1,firstNameString);
ps.setString(2,lastNameString);
int result = ps.executeUpdate();
...
要添加转义序列,可以在Oracle中使用'
,如果要转义'
,则添加'''
第一个'
是字符串的开始在我们的情况下,第二个'
转义第三个字符,即'