首页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亲测是不行的)这样就解决了。