问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用php往数据库里插入中文为什么乱码

发布网友 发布时间:2022-04-06 01:44

我来回答

3个回答

懂视网 时间:2022-04-06 06:05

php向数据库插入数据出现乱码的解决办法:首先将数据库的编码设为utf8;然后判断要插入数据库的文本编码方式;最后通过switch语句实现数据判断插入即可。

推荐:《PHP视频教程》

php向数据库插入数据出现乱码问题

一般插入到数据库的数据乱码都是编码的问题,可以在插入数据库前查看下内容的编码方式,如果和数据库用的编码方式(如:utf-8)一样就执行插入操作,不一样就进行转码。

先判断你要插入数据库的文本的编码方式,是utf-8就插入,不是的话要转为utf-8之后再插入:

 $e=mb_detect_encoding($text, array('UTF-8', 'GBK', 'gb2312'));
 switch($e){
  case 'UTF-8' : //如果是utf8编码就直接插入数据库
  break;
  case 'GBK': //如果是gbk编码就转换为utf-8之后再插入数据库
  iconv("GBK", "UTF-8",$data) ;
  break;
  case 'GB2312': //如果是GB2312编码就转换为utf-8之后再插入数据库
  iconv("GB2312", "UTF-8",$data) ;
 break;
 }

本以为程序中的编码和数据库用的编码保持一致就不会出现乱码了,可是,插入数据库的数据还是有乱码出现,排除了编码不一致之后,就想到可能是使用php连接mysql时没有设定mysql编码的缘故,果然,在连接数据库之后将数据库的编码也设为utf8之后再进行数据库插入操作就没有乱码了。

代码如下:

$this->conn = mysqli_connect($db['default']['hostname'], $db['default']['username'], $db['default']['password'], $db['default']['dbname']) or die('Connect error!'); //连接到数据库
mysqli_set_charset($this->conn, 'utf8'); //此处不能用utf-8

热心网友 时间:2022-04-06 03:13

我也曾遇到过这个问题,折腾了好几个月终于找到原因了:
如下:
$query = "INSERT INTO biao(topid,title,link,body) VALUES(0,'这时标题','this my link','这里是身体');";
mysql_query(set names utf8);
mysql_query($query,$conn);

原因就是少了 mysql_query(set names utf8); 这一句 ,
并且这一句一定要加在 查询语句(mysql_query($query,$conn);)的前面;

希望能够帮到你,一起进步

热心网友 时间:2022-04-06 04:31

数据库编码与php文件编码不统一
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 使用PHP向MYSQL数据库插入中文数据时,页面中文显示正常,但是数据库里面确实乱码,该怎么解决? php 添加语句数据库出现乱码 php插入 数据到MYSQL出现乱码的? PHP连接数据库后,通过ajax在前端插入数据到数据库后出现乱码,怎么解决 记录PHP错误日志 display_errors与log_errors的区别 PHP配置把错误日志以邮件方式发送方法 PHP的错误日志文件“php_error_log”可以直接删除么? 通过PHP.ini关闭php错误信息回显的方法 phpstudy 如何关闭apache的日志? linux下给PHP添加curl模块 您的服务器没有安装这个PHP扩展:curl ... Failed 怎么开启CURL扩展和pathinfo模式以及php5.2 配置mbstring扩展 php怎样删除文件夹下所有没有后缀名的文件 php 不删除文件夹, 删除文件夹下所有文件 php通过URL删除指定文件 怎样用PHP 删除目录中指定的文件?? PHP unlink与rmdir删除目录及目录下所有文件实例代码 PHP获取指定目录下所有文件并可以选择删除 php删除文件夹及其文件夹下所有文件 php中删除文件夹 用PHP里的SQL语句名Mysql数据库中插入中文字符时为什么显示乱码? PHP插入数据到数据库出中,中文出现乱码~~全是问号 PHP向mysql插入数据乱码 php连接数据库插入数据后,mysql中查询汉字字符乱码 PHP插入mysql数据库乱码 在PHP页面向MySQL数据库写入数据时,无论是控制台还是phpmyadmin都出现了中文乱码现象。怎么破? 文字插入PHP数据库变乱码? PHP strtotime() 函数 php怎么把中文日期转换成时间戳 php把时间戳转换成多少时间之前函数 PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期) 在PHP中怎么将date()函数转换为unix时间戳? ci框架怎么隐藏index.php和控制器 CI 框架怎么去掉隐藏入口文件 index.php phpCI框架 如何去掉默认index.php 在nginx下如何去除ci框架url中的index.php CI框架怎么去掉隐藏入口文件index.php 自己写写框架 怎么隐藏 index.php,和修改URL的路径问题 CI框架如何删除地址栏的 index.php CI框架如何删除URL中index.php的终极解决方案