最近写一个了交易系统
开始一帆风顺的
但是在运行的时候却遇到了一个很严重的问题
当我要插入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("'","''");
这样就能解决这个问题