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