首頁SQLPHP向MySQL插入記錄時亂碼問題
- 2019 年 10 月 30 日
- 筆記
用的工具是PhpStorm+wampserver中php7.3.5+本地安裝的MySQL5.7
Navicat for MySql 新建數據庫時編碼格式設置成:utf8 -- UTF-8 Unicode
排序規則:utf8_general_ci
。個人建議,為了避免不必要的麻煩,凡是涉及編碼格式的開發工具,安裝後第一時間設置成utf8。
先來看看亂碼吧!

下面來看源碼
<?php header("Content-Type:text/html;charset=utf-8"); $host="localhost"; $user="root"; $password="zzjava"; $dbname="community"; //創建連接 $conn=new mysqli($host,$user,$password,$dbname); if ($conn->connect_errno){//檢測連接 die("連接失敗:".$conn->connect_errno); } $sql="insert into stu (stu_num,stu_name) values ('6', '張三')"; if ($conn->query($sql) === TRUE) {echo "=====新記錄插入成功!=====";} else { echo "Error: " . $sql . "<br>" . $conn->error;} $conn->close(); ?>
運行結果
D:softwarewampserverbinphpphp7.3.5php.exe D:phpspacetestconnTest.php =====新記錄插入成功!===== Process finished with exit code 0
雖然插入成功,但是出現亂碼這很讓人頭疼。
解決
<?php $host="localhost"; $user="root"; $password="zzjava"; $dbname="community"; //創建連接 $conn=new mysqli($host,$user,$password,$dbname); //設置編碼格式為utf8 $conn->query("SET NAMES utf8"); if ($conn->connect_errno){//檢測連接 die("連接失敗:".$conn->connect_errno); } $sql="insert into stu (id,name) values ('6', '趙六')"; if ($conn->query($sql) === TRUE) {echo "=====新記錄插入成功!=====";} else { echo "Error: " . $sql . "<br>" . $conn->error;} //關閉連接 $conn->close(); ?>
沒錯,就是加了一條$conn->query("SET NAMES utf8");
(需要注意的是這裡的utf8寫成utf-8親測是不行的)這樣就解決了。
