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

Posted 敲代码的xiaolang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
?>

结果为:

以上是关于PHP向MySQL插入记录时中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis + Mysql 插入数据时中文乱码问题

Mybatis + Mysql 插入数据时中文乱码问题

web 项目:解决插入 MySQL 数据库时中文乱码问题

php显示中文乱码,phpmyadmin里的MySQL数据库中文乱码,如何解决?

php操作oracle查询时中文乱码

用source语句导入sql文件时中文乱码如何解决