在 PHP 开发过程中,会经常涉及到将数据保存到数据库中。但是,有时候会出现保存数据到数据库出现乱码的情况。本篇文章将着重介绍 php 数据保存到数据库乱码的问题,以及解决办法。
一、问题出现的原因
在 PHP 更新 MySQL 数据库的时候,如果 PHP 和 MySQL 的字符集不一致,就有可能出现乱码问题。针对此问题,需要在代码中指定正确的字符集。
二、解决办法
可以在 MySQL 数据库中通过以下命令修改字符集
SET NAMES 'utf8mb4';
该命令只对当前连接有效,如果需要永久修改,需要在 MySQL 配置文件中修改。修改方式如下:
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
在连接数据库时加上一句代码即可:
mysqli_set_charset($mysqli, "utf8mb4");
在 PHP 中使用函数header()
可以设置http头,如下:
header("Content-type:text/html;charset=utf-8");
这样设置后所有输出到浏览器的字符集都是 utf-8 的。
在 PHP 中,还可以指定数据保存到数据库的编码方式:
mysqli_query($link, "SET NAMES 'utf8mb4'");
其中,$link
是连接 MySQL 数据库的对象。
在创建数据表时,需要指定字符集:
CREATE TABLE `mytable`(`id` INT, `name` VARCHAR(50)) DEFAULT CHARSET=utf8mb4;
在 html 的 head 中加上以下代码:
<meta charset="UTF-8">
这样设置后所有显示的字符集都是 UTF-8。
总结:
PHP 数据保存到数据库乱码问题虽然比较常见,但其实只要搞清楚问题的原因,就可以通过以上的解决办法轻松解决。同时,在开发过程中应尽可能使用 utf8mb4 字符集。
以上是php数据保存到数据库乱码怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!