转载自: http://hi.baidu.com/wfly126/blog/item/9d6e0e010d093cdf277fb59b.html

如果大家在进行php 5 .2.3 以上的开发时,请尽量避免使用mysql_query(”set names utf8″) 来设置mysql的字符集了。
mysql_set_charset()才是最完整的字符集设置方式。
后者比前者多一个设置,
就是把struct MySQL的charset成员也设置了。
这个成员变量在escape的时候起着很重要的作用,特别是对于GBK这种运行把“\”作为字符一部分的编码格式。
如果你只使用mysql_query(”set names XXX”),那么在某些字符集,会有重大的安全漏洞,导致mysql_real_escape_string变得和addslashes一样不安全。

如果是 <5.2.3 版本的 可以使用一下自定义函数去设置字符集

 

PHP Code
1 <?php
2  function imysql_set_charset($charset,$links=null){
3 if (false === function_exists('mysql_set_charset')){
4 if($links == null){
5 return @mysql_query('SET CHARACTER "'.$charset.'"');
6 }else{
7 return @mysql_query('SET CHARACTER "'.$charset.'"',$links);
8 }
9 }else{
10 if($links == null){
11 return @mysql_set_charset($charset);
12 }else{
13 return @mysql_set_charset($charset,$links);
14 }
15 }
16 }

 

相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2021-05-28
  • 2021-12-29
  • 2021-11-03
  • 2021-04-04
  • 2022-02-07
猜你喜欢
  • 2022-01-10
  • 2021-07-29
  • 2021-06-21
  • 2021-11-06
  • 2021-09-17
  • 2021-10-30
  • 2021-12-03
相关资源
相似解决方案