亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 后端開發(fā) PHP問題 總結(jié)mysql php亂碼問題

總結(jié)mysql php亂碼問題

Jul 06, 2020 am 09:21 AM
mysql php

解決mysql php亂碼問題:1、建立數(shù)據(jù)庫表時指定數(shù)據(jù)庫表的字符集;2、設(shè)置mysql的字符集;3、連接數(shù)據(jù)庫后,設(shè)置數(shù)據(jù)庫間傳輸字符時所用的默認(rèn)字符編碼;4、設(shè)置html頁面使用的字符集。

總結(jié)mysql php亂碼問題

php讀mysql時,有以下幾個地方涉及到了字符集。

1.?建立數(shù)據(jù)庫表時指定數(shù)據(jù)庫表的字符集。例如

 create table tablename 
 ( 
 id int not null auto_increment, 
 title varchar(20) not null,  
 primary key ('id') 
 )DEFAULT CHARSET =UTF8;

如果在創(chuàng)建表時沒有指定表的字符集,則使用表所屬的數(shù)據(jù)庫的默認(rèn)字符集。該字符集由character_set_database指定。
查看數(shù)據(jù)庫表所使用的字符集的方法是:

show create table mytable;

(PS:建立數(shù)據(jù)庫/表和進(jìn)行數(shù)據(jù)庫操作時盡量顯式指出使用的字符集,而不是依賴于MySQL的默認(rèn)設(shè)置,否則MySQL升級時可能帶來很大困擾[1])

2. mysql的字符集
mysql中有三個重要的變量,character_set_client,character_set_results,character_set_connection。
通過設(shè)置character_set_client,告訴Mysql,PHP存進(jìn)數(shù)據(jù)庫的是什么編碼方式。
通過設(shè)置character_set_results,告訴Mysql,PHP需要取什么樣編碼的數(shù)據(jù)。
通過設(shè)置character_set_connection,告訴Mysql,PHP查詢中的文本,使用什么編碼。

3. 連接數(shù)據(jù)庫后,設(shè)置數(shù)據(jù)庫間傳輸字符時所用的默認(rèn)字符編碼。
使用mysqli::set_charset()或mysqli::query('set names utf8'),進(jìn)行設(shè)置。
盡量使用mysqli::set_charset(mysqli:set_charset)而不是”SET NAMES”(參考這篇文章)

$db = new mysqli('localhost','user','passwd','database_name');$db->set_charset('utf8');

注意是utf8,不是utf-8
(這里有個問題就是,數(shù)據(jù)庫和php都已經(jīng)統(tǒng)一了編碼,但是如果沒有調(diào)用mysqli::set_charset()函數(shù)時,讀出數(shù)據(jù)時仍然會出現(xiàn)亂碼。這是為什么?)
(另,set names utf8相當(dāng)于下面三句
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;


4. html頁面使用的字符集。在meta標(biāo)簽中設(shè)置

<meta http-equiv="content-type" content="text/html; charset=utf-8">

5. php文本文件所使用的字符集。
在linux下可以用vim打開文件,輸入
:set encoding
查看文件使用的字符集

要保證不亂碼,需要保證文件自身的編碼,HTML里指定的編碼,PHP告訴Mysql的編碼(包括character_set_client和character_set_results)統(tǒng)一。同時使用mysqli:set_charset()函數(shù)或”SET NAMES”。

針對“3”后面的問題,寫了幾個例子,測試鏈接數(shù)據(jù)庫后,設(shè)置和不設(shè)置字符集時的結(jié)果。測試環(huán)境Ubuntu 12.04,MySQL 5.5,php 5.5.7。
結(jié)果如下:
(1) 數(shù)據(jù)庫表字符集是utf8,不使用set names utf8
能正常插入、讀出中文,但是在mysql中顯示亂碼

(2) 數(shù)據(jù)庫表字符集是utf8,使用set names utf8
能正常插入、讀出中文,mysql中顯示正確

(3) 數(shù)據(jù)庫表字符集不是utf8,使用set names utf8
mysql中顯示,讀出都是問號。

很多相關(guān)知識,請?jiān)L問PHP中文網(wǎng)

以上是總結(jié)mysql php亂碼問題的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

PHP中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 PHP中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關(guān)聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫查詢次數(shù);2.僅選擇所需字段,避免加載完整實(shí)體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實(shí)體生命周期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫索引存在并分析生成的SQL語句以避免低效查詢;6.在無需跟蹤變更的場景下禁用自動變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當(dāng)優(yōu)化,在保持開發(fā)效率的同時確保應(yīng)用性能。

用PHP和RabbitMQ建造彈性微服務(wù) 用PHP和RabbitMQ建造彈性微服務(wù) Jul 27, 2025 am 04:32 AM

要構(gòu)建彈性的PHP微服務(wù),需使用RabbitMQ實(shí)現(xiàn)異步通信,1.通過消息隊(duì)列解耦服務(wù),避免級聯(lián)故障;2.配置持久化隊(duì)列、持久化消息、發(fā)布確認(rèn)和手動ACK以確??煽啃裕?.使用指數(shù)退避重試、TTL和死信隊(duì)列安全處理失??;4.通過supervisord等工具守護(hù)消費(fèi)者進(jìn)程并啟用心跳機(jī)制保障服務(wù)健康;最終實(shí)現(xiàn)系統(tǒng)在故障中持續(xù)運(yùn)作的能力。

python run shell命令示例 python run shell命令示例 Jul 26, 2025 am 07:50 AM

使用subprocess.run()可安全執(zhí)行shell命令并捕獲輸出,推薦以列表傳參避免注入風(fēng)險;2.需要shell特性時可設(shè)shell=True,但需警惕命令注入;3.使用subprocess.Popen可實(shí)現(xiàn)實(shí)時輸出處理;4.設(shè)置check=True可在命令失敗時拋出異常;5.簡單場景可直接鏈?zhǔn)秸{(diào)用獲取輸出;日常應(yīng)優(yōu)先使用subprocess.run(),避免使用os.system()或已棄用模塊,以上方法覆蓋了Python中執(zhí)行shell命令的核心用法。

為PHP創(chuàng)建準(zhǔn)備生產(chǎn)的Docker環(huán)境 為PHP創(chuàng)建準(zhǔn)備生產(chǎn)的Docker環(huán)境 Jul 27, 2025 am 04:32 AM

使用正確的PHP基礎(chǔ)鏡像并配置安全、性能優(yōu)化的Docker環(huán)境是實(shí)現(xiàn)生產(chǎn)就緒的關(guān)鍵。1.選用php:8.3-fpm-alpine作為基礎(chǔ)鏡像以減少攻擊面并提升性能;2.通過自定義php.ini禁用危險函數(shù)、關(guān)閉錯誤顯示并啟用Opcache及JIT以增強(qiáng)安全與性能;3.使用Nginx作為反向代理,限制訪問敏感文件并正確轉(zhuǎn)發(fā)PHP請求至PHP-FPM;4.采用多階段構(gòu)建優(yōu)化鏡像,移除開發(fā)依賴,設(shè)置非root用戶運(yùn)行容器;5.可選Supervisord管理多個進(jìn)程如cron;6.部署前驗(yàn)證無敏感信息泄

深入了解PHP的內(nèi)部垃圾收集機(jī)制 深入了解PHP的內(nèi)部垃圾收集機(jī)制 Jul 28, 2025 am 04:44 AM

PHP的垃圾回收機(jī)制基于引用計數(shù),但循環(huán)引用需靠周期性運(yùn)行的循環(huán)垃圾回收器處理;1.引用計數(shù)在變量無引用時立即釋放內(nèi)存;2.循環(huán)引用導(dǎo)致內(nèi)存無法自動釋放,需依賴GC檢測并清理;3.GC在“可能根”zval達(dá)閾值或手動調(diào)用gc_collect_cycles()時觸發(fā);4.長期運(yùn)行的PHP應(yīng)用應(yīng)監(jiān)控gc_status()、適時調(diào)用gc_collect_cycles()以避免內(nèi)存泄漏;5.最佳實(shí)踐包括避免循環(huán)引用、使用gc_disable()優(yōu)化性能關(guān)鍵區(qū)及通過ORM的clear()方法解引用對象,最

在PHP中構(gòu)建不變的物體,并具有可讀的屬性 在PHP中構(gòu)建不變的物體,并具有可讀的屬性 Jul 30, 2025 am 05:40 AM

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

無服務(wù)器革命:使用BREF部署可擴(kuò)展的PHP應(yīng)用程序 無服務(wù)器革命:使用BREF部署可擴(kuò)展的PHP應(yīng)用程序 Jul 28, 2025 am 04:39 AM

Bref使PHP開發(fā)者能無需管理服務(wù)器即可構(gòu)建可擴(kuò)展、成本高效的應(yīng)用。1.Bref通過提供優(yōu)化的PHP運(yùn)行時層,將PHP帶入AWSLambda,支持PHP8.3等版本,并與Laravel、Symfony等框架無縫集成;2.部署步驟包括:使用Composer安裝Bref,配置serverless.yml定義函數(shù)和事件,如HTTP端點(diǎn)和Artisan命令;3.執(zhí)行serverlessdeploy命令即可完成部署,自動配置APIGateway并生成訪問URL;4.針對Lambda限制,Bref提供解決

See all articles