小编Ton*_*nse的帖子

如何从用户输入中转义撇号

所以我将.csv文件中的信息导入数据库.但是我在csv文件中输入用户输入的描述时遇到问题,因为它们包含撇号,这会打破SQL导入.

我的Import语句是String sqlJob =

"INSERT INTO job (ID, Job_Contact, Internal_Comment, Customer_Name," 
  + " Duration, Job_Location, Job_Completion_Date, Job_Technician," 
  + " Job_Asset, Job_Type, Job_Description) VALUES ('"
  +csvRecord.get(i)+"', '"+csvRecord.get(26)+"', '"+csvRecord.get(16)
  +"', '"+csvRecord.get(2)+"', '"+csvRecord.get(31)+"', '"+csvRecord.get(27)
  +"', '"+csvRecord.get(28)+"', '"+csvRecord.get(29)+"', '"+csvRecord.get(30)
  +"', '"+csvRecord.get(33)+"', '"+csvRecord.get(34)+"');";
Run Code Online (Sandbox Code Playgroud)

简化形式将是

"INSERT INTO job (ID, Description) VALUES ('"
  + csvRecord.get(i) + "', '" + csvRecord.get(34) + "');";
Run Code Online (Sandbox Code Playgroud)

问题csvRecord.get(34)有时会包含撇号.例如,"My name's Bob"和Bob中的撇号打破了声明该值是SQL字符串所需的周围撇号.

是否有一种简单的方法来解析字符串并在撇号前面添加转义字符,或者我应该以不同的方式格式化原始SQL命令.

谢谢!

java sql escaping jdbc

2
推荐指数
1
解决办法
87
查看次数

标签 统计

escaping ×1

java ×1

jdbc ×1

sql ×1