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

参考文章:

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

mariadb10.2.7

php5.4.16

 

 PHP文件:

test.php

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

 

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

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

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

分析问题原因在php上

解决:

mysqli_set_charset   — 设置默认字符编码

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

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

问题解决。

 

posted @ 2017-07-20 10:48  JaceyKan  阅读(892)  评论(0编辑  收藏  举报