国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL 編碼機(jī)制

2020-01-19 00:22:21
字體:
供稿:網(wǎng)友
character_set_client ,這是用戶告訴MySQL查詢是用的什么字符集。
character_set_connection ,MySQL接受到用戶查詢后,按照character_set_client將其轉(zhuǎn)化為character_set_connection設(shè)定的字符集。
character_set_results , MySQL將存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換成character_set_results中設(shè)定的字符集發(fā)送給用戶。
DISCUZ并沒有使用set NAMES character
SET NAMES 'x'語句與這三個(gè)語句等價(jià):
mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x;
而DISCUZ里面是
復(fù)制代碼 代碼如下:

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

SET character_set_client = binary;使用二進(jìn)制字符集查詢
此三處的字符設(shè)定很大程度上會(huì)解決亂碼問題,那么著三個(gè)設(shè)定具體有什么作用呢?
character_set_client指定的是Sql語句的編碼,如果設(shè)置為 binary,mysql就當(dāng)二進(jìn)制來處理,character_set_connection指定了mysql 用來運(yùn)行sql語句的時(shí)候使用的編碼,也就是說,程序發(fā)送給MySQL 的SQL語句,會(huì)首先被MySQL從character_set_client指定的編碼轉(zhuǎn)換到character_set_connection指定的編碼,如果character_set_clien指定的是binary,則MySQL就會(huì)把SQL語句按照character_set_connection指定的編碼解釋執(zhí)行.
當(dāng)執(zhí)行SQL語句的過程中,比如向數(shù)據(jù)庫中插入字段的時(shí)候,字段也有編碼設(shè)置,如果字段的編碼設(shè)置和character_set_connection指定的不同,則MySQL 會(huì)把插入的數(shù)據(jù)轉(zhuǎn)換成字段設(shè)定的編碼。SQL語句中的條件判斷和SQL插入語句的執(zhí)行過程類似.
當(dāng)SQL執(zhí)行完畢像客戶端返回?cái)?shù)據(jù)的時(shí)候,會(huì)把數(shù)據(jù)從字段指定的編碼轉(zhuǎn)換為character_set_results指定的編碼,如果character_set_results=NULL 則不做任何轉(zhuǎn)換動(dòng)作,(注意這里設(shè)置為NULL不等于沒有設(shè)置,沒有設(shè)置的時(shí)候MySQL會(huì)繼承全局設(shè)置),
工作中比較有用的就是利用MySQL進(jìn)行轉(zhuǎn)碼、不同編碼的數(shù)據(jù)庫之間共用數(shù)據(jù)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安福县| 正蓝旗| 雷波县| 澄迈县| 饶阳县| 新余市| 石首市| 贡觉县| 宝丰县| 宣汉县| 海宁市| 屏东县| 安阳县| 莱芜市| 循化| 临猗县| 兴宁市| 饶河县| 鄂伦春自治旗| 广安市| 乌兰浩特市| 东阳市| 福建省| 扎赉特旗| 新闻| 长武县| 平昌县| 石狮市| 阳谷县| 夏河县| 治多县| 花莲市| 常宁市| 芜湖市| 阜康市| 泊头市| 林芝县| 景德镇市| 晴隆县| 江安县| 荣昌县|