最近寫一個了交易系統
開始一帆風順的
但是在運行的時候卻遇到了一個很嚴重的問題
當我要插入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("'","''");
這樣就能解決這個問題