作者BIGBLACK918 (大黑)
看板java
标题[问题] JSP无法存入单引号进SQL
时间Sun Jan 3 22:03:04 2010
用JSP写入包含单引号的字串时,
会发生错误,爬文之後也尝试使用用string.replace("'","''");
也就是说用两个单引号取代一个单引号
或是以"/'"进行取代
但仍然无法解决
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near ''primosomal
protein N'')' at line 1
错误如上
不知道大家有没有甚麽解决方法
麻烦各位了
==================
恩 我使用的是MYSOL
语法为
INSERT INTO ptt(Genome, PID, Synonym, Gene, Location, Strand, Length, Code,
COG, Product)VALUES('Acholeplasma laidlawii
PG-8A','162447190','ACL_0324','-','333175..335439','+','754','-','COG1198L','primosomal
protein N'');
==================
部分程式码如下
while((lineStr = br.readLine()) != null) {
stmt = conDB.createStatement();
String splitdata[]=lineStr.split("\t");
splitdata[8].replaceAll("'", "''");
String updataCode = "INSERT INTO ptt(Genome, PID, Synonym, Gene,
Location, Strand, Length, Code, COG, Product)VALUES" +
"('"+genomeName+"','"+ splitdata[3]+"','"+
splitdata[5]+"','"+splitdata[4]+"','"+ splitdata[0]+"','"
+splitdata[1]+"','"+ splitdata[2]+"','"+splitdata[6]+"','"+
splitdata[7]+"','"+splitdata[8]+"');";
System.out.println(updataCode);
stmt.executeUpdate(updataCode);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.64.101.194
1F:→ TonyQ:是哪一家 db 应该要说一下啊 , 虽然我猜是mysql XD 01/03 22:07
2F:→ TonyQ:印一下你实际执行的SQL 上来 , 再来做诊断吧. ' -> ''没错 01/03 22:08
3F:推 superlubu:是否忘了 string.replace 是 return String object 01/03 22:10
4F:→ superlubu:而不是直接更改 call object 的字串? 01/03 22:12
※ 编辑: BIGBLACK918 来自: 203.64.101.194 (01/03 22:15)
※ 编辑: BIGBLACK918 来自: 203.64.101.194 (01/03 22:19)
5F:→ superlubu:看来原PO是以为 replace 会把直接改 call object 了 01/03 22:18
6F:→ superlubu:原 PO: 请去把 String.replace 的 API 好好看一遍... 01/03 22:22
7F:→ BIGBLACK918:哈 已解决了 谢谢你们两位~ 01/03 22:25