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

首頁 > 數據庫 > MySQL > 正文

MySQL 編碼機制

2024-07-24 13:04:13
字體:
來源:轉載
供稿:網友
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進行轉碼、不同編碼的數據庫之間共用數據。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福泉市| 顺义区| 唐山市| 徐闻县| 大埔区| 五常市| 光山县| 东宁县| 唐山市| 德令哈市| 鱼台县| 乐陵市| 巴南区| 枝江市| 乳山市| 宜阳县| 滁州市| 奎屯市| 东安县| 临海市| 永善县| 阿鲁科尔沁旗| 汕头市| 华蓥市| 清原| 巴林左旗| 宣汉县| 香格里拉县| 西峡县| 石棉县| 当雄县| 台前县| 焦作市| 唐海县| 兴宁市| 习水县| 普安县| 施甸县| 岑溪市| 子长县| 普安县|