数据库中有一个text类型的字段,用于存放RichEdit在线编辑器录入的内容,里面会有许多HTML标签及",.()"等各种符号,我需要拼装一个sql语句字符串来插入这些内容,如果避免其中的特殊字符破坏sql语句呢?是否需要对文字编码?那么在查询显示时是否还要再次反向编码?

解决方案 »

  1.   

    通过编辑器获得也是一个String类型的吧。我做过一次。不需要进行特殊处理。直接存储与读取。   查询显示时需要再次放到编辑器当中才能正常显示。
      

  2.   

    我不知道你是怎么写表的,但我这里需要拼装sql字符串,例如:insert news_text set id=123,name='标题',content='在线编辑器提交的内容'但在线编辑器提交的字符串中可能会有单引号、逗号等字符,如果用ibatis或hibernate来写表,不需要考虑这个问题,但组合动态sql字符串就需要考虑了。
      

  3.   

    相当于sql注入了,
    不能直接拼sql
      

  4.   

    是否只把单引号转换为''就可以?如果把单引号都转换了还用担心sql注入吗?
      

  5.   

    用stringbuffer先将编辑内容组装,然后.toString()注入.你最好写一个存储过程.