PHP向MySQL插入记录时中文乱码

php代码如下

<?php
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "web3";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "INSERT INTO question (username, email,message)
VALUES ('xiaowang', '66666@qq.com','这是一个测试语句!')";

if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

执行后数据库显示如下,中文部分出现乱码:
在这里插入图片描述
数据库和数据表设置如下
在这里插入图片描述
在这里插入图片描述

解决方法
加入下面的代码:

$conn->query("SET NAMES utf8");

故修改后为:

<?php
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "web3";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->query("SET NAMES utf8");
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "INSERT INTO question (username, email,message)
VALUES ('xiaowang', '66666@qq.com','这是一个测试语句!')";

if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

结果为:
在这里插入图片描述


版权声明:本文为weixin_52605156原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。