最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于mysql字符集設(shè)置了character_set_client=binary 在gbk情況下會出現(xiàn)表描述是亂碼的情況

 更新時間:2013年01月06日 14:40:46   作者:  
今天在處理bug的時候,又發(fā)現(xiàn)一個奇怪的問題,在設(shè)置mysql的編碼為gbk的情況下,發(fā)現(xiàn)建立出來的表,凡是表結(jié)構(gòu)無論是字段還是表結(jié)構(gòu)描述是中文的時候,建立出來的表結(jié)構(gòu)描述是亂碼,經(jīng)過排查原來是character_set_client=binary惹的禍
mysql鏈接建立之后,通過如下方式設(shè)置編碼:
復(fù)制代碼 代碼如下:

mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->link);

然而建立出來的表結(jié)構(gòu)描述竟然是亂碼:
復(fù)制代碼 代碼如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '��������',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '���������ռ�',
`value` text COMMENT '����ֵ',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '����ֵ����',
`description` text COMMENT '���ý���',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='��վ���ñ�'

經(jīng)過排查,發(fā)現(xiàn)竟然是character_set_client=binary惹的禍:

復(fù)制代碼 代碼如下:
$targetDb->query("SET NAMES '{$charset}'");


復(fù)制代碼 代碼如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '配置名稱',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空間',
`value` text COMMENT '緩存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值類型',
`description` text COMMENT '配置介紹',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='網(wǎng)站配置表'

但是,如果我設(shè)置的字符集是UTF8的,表結(jié)構(gòu)也是utf8,那么即使是使用的上面的character_set_client=binary,表結(jié)構(gòu)的描述正常:
復(fù)制代碼 代碼如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '配置名稱',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空間',
`value` text COMMENT '緩存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值類型',
`description` text COMMENT '配置介紹',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='網(wǎng)站配置表'

而奇怪的事,亂碼情況只有表結(jié)構(gòu)中的描述中才存在,對于插入的數(shù)據(jù)中文卻還是正常的~

網(wǎng)上查了character_set_client=binary都說是“大部分為了解決亂碼問題而設(shè)置”,卻不知,這個對表結(jié)構(gòu)描述竟然反而亂碼了。到底這個是什么作用呢?表結(jié)構(gòu)的時候又為什么不一樣呢?

相關(guān)文章

最新評論

连南| 巴塘县| 建水县| 玛曲县| 辽宁省| 邢台县| 寻乌县| 介休市| 南川市| 盘锦市| 云南省| 锡林浩特市| 龙岩市| SHOW| 峡江县| 海伦市| 密山市| 怀集县| 广平县| 锡林郭勒盟| 株洲市| 云阳县| 金堂县| 临清市| 鄱阳县| 枣阳市| 抚宁县| 洛扎县| 四会市| 瑞昌市| 临泉县| 凉山| 连江县| 原阳县| 闸北区| 肇州县| 廊坊市| 罗定市| 大城县| 汶上县| 施甸县|