看板 java 關於我們 聯絡資訊
用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
TonyQ:是哪一家 db 應該要說一下啊 , 雖然我猜是mysql XD 01/03 22:07
TonyQ:印一下你實際執行的SQL 上來 , 再來做診斷吧. ' -> ''沒錯 01/03 22:08
superlubu:是否忘了 string.replace 是 return String object 01/03 22:10
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)
superlubu:看來原PO是以為 replace 會把直接改 call object 了 01/03 22:18
superlubu:原 PO: 請去把 String.replace 的 API 好好看一遍... 01/03 22:22
BIGBLACK918:哈 已解決了 謝謝你們兩位~ 01/03 22:25