一段语句$str='<pre><span style="color:red">123</span></pre>';在临插入数据库的时候我打印出来,,观看源代码就是这样的,诡异的是存入数据库后,,在显示出来,源代码居然变成&lt;pre&gt;<span style="color:red">123</span>&lt;/pre&gt;而数据库里存的也是这个,,真是邪门了。难道bug??

解决方案 »

  1.   

    insert into ab(content) values('<pre>this  is   atesttesttest</pre>')我打印出sql语句都没问题执行<pre>就被实体化了
      

  2.   

    我打印出sql语句都没问题
    -----------------------
    确定浏览器源代码里看这行输出<pre>也没转化?
      

  3.   


    是的,确定,,紧接着就是执行插入语句了,,我用的是thinkphp  插入方法
      

  4.   


    看数据库数据是否正常。
    不正常检查:
    echo $sql 之后 INSERT之前有没实体化了。正常:
    即是实体化输出了。
      

  5.   

    转义字符的问题吧。使用addslashes函数将数据插入到数据库中,读取时使用stripslashes函数还原为正常的数据。
      

  6.   


    echo $sql之后直接执行插入了,其他标记不变,就单单转义<pre></pre>,莫名奇妙
      

  7.   

    同意楼上的,是为了防止SQL注入式攻击。上次的加那个转义没有用的。不过好像把标签的"<"和">"(。&lt;pre&gt;)替换为"&\lt","&\gt"。这样既可以正确显示代码,又不会使代码被执行
      

  8.   

    你用thinkphp ,thinkphp的插入都把标签给转换了