iteye_17666
2011-04-29 08:25
浏览 1.5k

如何向数据库中插入含有单引号的字符串

数据库表info(id INT,value TEXT),如果需要将一个字符串变量(该字符串变量通常会有几千个字符,而且里面会有很多的单/双引号)插入到数据库中,则sql语句该怎么写呢?如果按照通常的写法:
[code="java"]String sql = "INSERT INTO info (value) VALUES('" + value + "')";(value是字符串变量)[/code]
一旦解析时遇到value变量中的单引号,就会引发sql语句的歧义,有没有什么好的解决办法呢?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • iteye_2443 2011-04-29 10:12
    已采纳

    直接用jdbc?
    如果是这样为什么不考虑用预编译

    已采纳该答案
    打赏 评论
  • xiaowen0713 2011-04-29 08:27

    转义一下看看.就是要插入单引号的地方用\'

    打赏 评论
  • redstarofsleep 2011-04-29 08:53

    将这个字符串中的所有单引号转意为\'

    打赏 评论
  • redstarofsleep 2011-04-29 09:45

    其实整体转义应该也不会影响太多的性能,用个正则一下就完成了。

    还有个办法:单引号是数据库默认的字符串的边界符,你只要修改就可以了,就是把数据库中表示字符串起始与结束改用别的符号,Oracle里是可以改的,Mysql你查一下。

    打赏 评论
  • Bluebelief 2011-04-29 10:05

    处理value这个字符串变量时,遇到单引号(')用replace替换成两个单引号('')

    打赏 评论
  • ttt10816 2011-04-29 11:20

    blueBleief说的对。

    打赏 评论
  • blue2031 2011-04-29 13:03

    使用preparedStatement处理,不要拼接字符串,可以解决你的问题,还可以解决sql注入安全问题!

    打赏 评论

相关推荐 更多相似问题