set names 和mysql_set_charset() 的区别

GuoJuXia 2015-10-25 03:20:32
例如如下语句
$encoding = mysql_client_encoding($con); //encoding=latin1
mysql_query("SET NAMES gbk");
$encoding = mysql_client_encoding($con); //encoding=latin1

为什么第二次获得的encoding还是latin1,不应该是gbk么。
在网上看的
SET NAMES 'gbk';
它相当于下面的三句指令:
SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = gbk;
这么看来character_set_client应该是被改变了啊,为什么第二次获取的时侯跟原来的一样呢?

经测试,使用mysql_set_charset("gbk",$con);替换mysql_query("SET NAMES gbk");之后,第二次获取的encoding就是gbk,在网上找了下这两者的区别,但对于这一点的解释还没找到,求大牛解释。
...全文
205 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Charles杨 2015-10-29
  • 打赏
  • 举报
回复
从php5.2.3以及mysql5.0.7之后SET NAMES 'utf8'这类语句将不再建议使用,而尽量要使用mysql_set_charset()函数。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧