MySQL 编码机制

WiFi吴浪

WiFi吴浪

2016-02-19 10:24

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的MySQL 编码机制,希望大家看完后能赶快学习起来。
character_set_client ,这是用户告诉MySQL查询是用的什么字符集。
character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
character_set_results , MySQL将存储的数据转换成character_set_results中设定的字符集发送给用户。
DISCUZ并没有使用set NAMES character
SET NAMES 'x'语句与这三个语句等价:
mysql SET character_set_client = x; mysql SET character_set_results = x; mysql SET character_set_connection = x;
而DISCUZ里面是
代码如下:

@mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this-link);

SET character_set_client = binary;使用二进制字符集查询
此三处的字符设定很大程度上会解决乱码问题,那么着三个设定具体有什么作用呢?
character_set_client指定的是Sql语句的编码,如果设置为 binary,mysql就当二进制来处理,character_set_connection指定了mysql 用来运行sql语句的时候使用的编码,也就是说,程序发送给MySQL 的SQL语句,会首先被MySQL从character_set_client指定的编码转换到character_set_connection指定的编码,如果character_set_clien指定的是binary,则MySQL就会把SQL语句按照character_set_connection指定的编码解释执行.
当执行SQL语句的过程中,比如向数据库中插入字段的时候,字段也有编码设置,如果字段的编码设置和character_set_connection指定的不同,则MySQL 会把插入的数据转换成字段设定的编码。SQL语句中的条件判断和SQL插入语句的执行过程类似.
当SQL执行完毕像客户端返回数据的时候,会把数据从字段指定的编码转换为character_set_results指定的编码,如果character_set_results=NULL 则不做任何转换动作,(注意这里设置为NULL不等于没有设置,没有设置的时候MySQL会继承全局设置),
工作中比较有用的就是利用MySQL进行转码、不同编码的数据库之间共用数据。
展开更多 50%)
分享

猜你喜欢

MySQL 编码机制

编程语言 网络编程
MySQL 编码机制

mysql 编码设置命令

编程语言 网络编程
mysql 编码设置命令

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL 4.1的编码问题

PHP
MySQL 4.1的编码问题

mysql中的数据编码

MySQL mysql数据库
mysql中的数据编码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mysql入门系列:对MYSQL查询中有疑问的数据进行编码

编程语言 网络编程
Mysql入门系列:对MYSQL查询中有疑问的数据进行编码

把mysql中的乱码变成正常的编码

MySQL mysql数据库
把mysql中的乱码变成正常的编码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用JQuery 实现的自定义对话框

用JQuery 实现的自定义对话框

在Windows 7中使用Windows日历组件

在Windows 7中使用Windows日历组件
下拉加载更多内容 ↓