博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再续mysql编码问题
阅读量:7207 次
发布时间:2019-06-29

本文共 2369 字,大约阅读时间需要 7 分钟。

yum安装版php5.3.0                                  

            +   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")的前提下,它们默认使用的连库编码是不一样的

 

 

 

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"

 

转载于:https://www.cnblogs.com/xuxyblog/p/4575669.html

你可能感兴趣的文章
node服务器中打开html文件的两种方法
查看>>
eclipse 将javaWeb项目转化成maven项目
查看>>
idea常用快捷键
查看>>
公网用户接入NAT后面的freeswitch配置
查看>>
nodejs笔记
查看>>
springboot项目中jdk版本的问题
查看>>
c#之多线程之为所欲为
查看>>
调整窗口大小时进行页面刷新(设定定时器)
查看>>
将SSM架构中原来关于springSecurity3.x版本的写法配迁移到SpringBoot2.0框架中出现的问题解决记...
查看>>
SpringBoot自定义Filter
查看>>
sql server 高可用故障转移(6)
查看>>
asp.net core中IHttpContextAccessor和HttpContextAccessor的妙用
查看>>
Type class-Typeclass-泛型基础上的二次抽象
查看>>
Qt之加减乘除四则运算-支持负数
查看>>
localStorage使用总结,页面跳转,保存值
查看>>
[Javascript] Replicate JavaScript Constructor Inheritance with Simple Objects (OLOO)
查看>>
数据结构2 - 线性表
查看>>
一个第三方Dart库导致的编译错误!
查看>>
AB Test 是什么
查看>>
RPMB原理介绍【转】
查看>>