sql處理半角引號

最近寫一個了交易系統

  開始一帆風順的
  但是在運行的時候卻遇到了一個很嚴重的問題
  當我要插入e'er時,數據庫就報sql語句錯誤.
  找了很久都沒找到原因

  最後發現
  sql中包含了一個單引號,因此當sql生成後,它的值是"INSERT bak (bak) VALUES ('e'er')"! 注意那裏面的單引號! SQL將如何去理解這些單引號呢? bak名稱的字符串到哪裏爲止呢? 所以SQL被搞糊塗了,所以你的代碼無法正常工作!
  但是SQL不怎麼聰明, 如果SQL看到了兩個緊挨在一起的單引號,它將假設你希望在此輸入一個單引號. 兩個單引號並不會讓SQL找不到SQL語句的終結. 因此,我們用"e''er"形式輸入bck就可以了.
  但是總不能每次都輸入兩個''把
  因此我們在代碼裏面寫入這樣一句話
  String sql=null;
  sql=sql.replace("'","''");
  這樣就能解決這個問題
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章