首頁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親測是不行的)這樣就解決了。