php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)

时间:2023-03-08 17:25:15

参考文章:

https://www.w3schools.com/php/func_mysqli_set_charset.asp

http://php.net/manual/zh/mysqli.set-charset.php

http://php.net/manual/zh/mysqlinfo.concepts.charset.php

环境:

centOS7

php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)

mariadb10.2.7

php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)

php5.4.16

php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)

PHP文件:

test.php

 <?php
$dbc = mysqli_connect("localhost", "root", "123456", "elvis_store") or die("数据库连接失败"); $sql = "INSERT into email_list values ('测试','中文','test@126.com');"; $result = mysqli_query($dbc,$sql) or die("数据插入失败");
mysqli_close($dbc); echo "数据添加成功";
?>

运行后,提示插入成功。进入mariadb控制台查询,显示乱码。

(如果插入不成功,问题可能在mariadb的设置上,见文章:mariaDB中文乱码 的解决办法)

但是直接在mariadb控制台直接插入数据无乱码。

分析问题原因在php上

解决:

mysqli_set_charset   — 设置默认字符编码

 <?php
$dbc = mysqli_connect("localhost", "root", "123456", "elvis_store") or die("数据库连接失败"); $sql = "INSERT into email_list values ('测试','中文','test@126.com');"; mysqli_set_charset($dbc,"utf8"); $result = mysqli_query($dbc,$sql) or die("数据插入失败");
mysqli_close($dbc); echo "数据添加成功";
?>

在sql运行前设置默认字符编码。

问题解决。