首页 / MYSQL / 再续mysql编码问题
再续mysql编码问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了再续mysql编码问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2928字,纯文字阅读大概需要5分钟。
内容图文
![再续mysql编码问题](/upload/InfoBanner/zyjiaocheng/450/798d970a8bf3437d805fcc179ee6b3c0.jpg)
+ mysql5.1.3(my.ini--->character_set_server=utf8)
编译安装php5.3.0
以上表示:两个不同的php环境,一个编译安装一个yum安装,版本相同,在使用mysql_connect()方法连接同一个mysql时,
在不设置mysql_query("set names utf")或mysql_set_charset("utf8")的前提下,它们默认使用的连库编码是不一样的
<?php $link=mysql_connect("localhost") or die(mysql_error());
$res=mysql_query("show variables like ‘%char%‘");
while($arr=mysql_fetch_assoc($res)){ var_dump($arr); }
yum版php
array ‘Variable_name‘ => string ‘character_set_client‘ (length=20) ‘Value‘ => string ‘latin1‘ (length=6) array ‘Variable_name‘ => string ‘character_set_connection‘ (length=24) ‘Value‘ => string ‘latin1‘ (length=6) array ‘Variable_name‘ => string ‘character_set_database‘ (length=22) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_filesystem‘ (length=24) ‘Value‘ => string ‘binary‘ (length=6) array ‘Variable_name‘ => string ‘character_set_results‘ (length=21) ‘Value‘ => string ‘latin1‘ (length=6) array ‘Variable_name‘ => string ‘character_set_server‘ (length=20) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_system‘ (length=20) ‘Value‘ => string ‘utf8‘ (length=4)
手动编译版php
array ‘Variable_name‘ => string ‘character_set_client‘ (length=20) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_connection‘ (length=24) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_database‘ (length=22) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_filesystem‘ (length=24) ‘Value‘ => string ‘binary‘ (length=6) array ‘Variable_name‘ => string ‘character_set_results‘ (length=21) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_server‘ (length=20) ‘Value‘ => string ‘utf8‘ (length=4) array ‘Variable_name‘ => string ‘character_set_system‘ (length=20) ‘Value‘ => string ‘utf8‘ (length=4)
通过phpinfo()查看两个不同php环境的编译参数,找到问题原因:
yum版的php中
--with-mysql=shared,/usr‘ ‘--with-mysqli=shared,/usr/lib64/mysql/mysql_config‘
这两个函数库默认调用的是MySQL客户端库(By default the MySQL database extensions are configured to use MySQL Client Library直译)的,这个时候Linux上是需要安装mysql,但是
编译版php
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
用的是mysqlnd(具体作用baidu,google)
两者最大的区别在于:mysqlnd连接数据库时,默认使用的是mysql服务器端show global variables like "%char%"显示的编码
而另一个始终是使用latin1做为连的库的编码,相当于无形中,一直设置了一个"set names latin1"
再续mysql编码问题
标签:
本文系统来源:http://www.cnblogs.com/xuxyblog/p/4575669.html
内容总结
以上是互联网集市为您收集整理的再续mysql编码问题全部内容,希望文章能够帮你解决再续mysql编码问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。