特殊字符例如 ' ,在保存进数据库中的时候自动转化成了&#36, 再从数据库中查询出来的时候就变成了&#36, 有没有sql语句或者是php的方法可以在查询出结果来以后把类似&#36这样的内容转化会 ' 的方法呢?

解决方案 »

  1.   

    数据库中你可以用 replace 如下mysql> select '化成了&#36, 再',replace('化成了&#36, 再','&#36','\'');
    +----------------+---------------------------------------+
    | 化成了&#36, 再 | replace('化成了&#36, 再','&#36','\'') |
    +----------------+---------------------------------------+
    | 化成了&#36, 再 | 化成了', 再                           |
    +----------------+---------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  2.   


    看不太明白, 我的项目赶着交, 里面的数据特殊符号都给转化了, 可以说的详细点吗, 是在看不懂你写的这个, 这是sql语句吗?
      

  3.   


    PHP 中你也可以直接用PHPstr_replace("&#36", "'", "<body text='化成了&#36, 再'>");
      

  4.   


    ACMAIN_CHM, 谢谢你的回复.sql语句我不知道改怎么写, 就是查询的时候可以把查询出来的结果里面的类似&#36, 这样的转化成会原来的字符. 查询出来的结果用print打印出来的时候, 在网页上面出现的是 ', 但是是html本身把 &#36 转化成了 '. php 或者数据库的语句有没有这样的语句啊, 不是只转化 ' 这一个, 还有一些别的特殊字符, 有没有php 或者数据库的方法可以把这些一次替换或者转化完?
      

  5.   

    MySQL 本身似乎不会自动做这种转化,更可能的是,你提交给 SQL 语句的值已经被转化了。根本解决问题的办法是找到哪个环节做了这种不应该有的“转化”,消灭它。当然,对于已经进入数据库的数据,如果你不想清掉重新来的话,可以用前面 ACMAIN_CHM 说的 replace() 方法逐个手工转回来。