解决php写入数据库乱码的问题

对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php mysql数据库连接时乱码解决方法。

MYSQL数据库使用UTF-8编码的问题

1.用phpmyadmin创建数据库和数据表

创建数据库的时候,请将“整理”设置为:“utf8_general_ci”或执行语句:

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,如果该字段是存放英文或数字的话,默认就可以了。

相应的SQL语句,例如:

CREATE TABLE `test` (

`id` INT NOT NULL ,

`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,

PRIMARY KEY ( `id` )

) ENGINE = MYISAM ;

2.用PHP读写数据库

在连接数据库之后

$connection = mysqli_connect($host_name, $host_user, $host_pass);

加入:

mysqli_query("set character set 'utf8'");//读库

mysqli_query("set names 'utf8'");//写库

就可以正常的读写MYSQL数据库了。

用的appserv-win32-2.5.10做的环境,装这个包的时候用默认的utf8编码。

在写数据库连接文件时,写成:

$conn = mysqli_connect("$host","$user","$password");

mysqli_query("SET NAMES 'UTF8'");

mysqli_select_db("$database",$conn);

然后在做页面时,注意这句:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

这样不管输入数据库的中文,还是页面显示,就都正常了。

在DW CS4版里,默认生成的也是utf8页面。

同样的,如果一开始写数据库连接文件时写成:

mysqli_query("SET NAMES 'GBK'");

那页面也要相应变成:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

以上就是php写入数据库乱码的详细内容,感谢大家的阅读和对我们的支持。

(0)

相关推荐

  • PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码

    老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ): 1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci 数据库的设置: 在my.ini文件中查找:[mysql]default-character-set = utf8[mysqld]default

  • php页面,mysql数据库转utf-8乱码,utf-8编码问题总结

    示例一: PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题 点击编辑器的菜单:"文件"->"另存为",可以看到当前文件的编码,确保文件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8. 3.PHP文件头BOM问题: PHP文件一定不可以有BOM标签,否则,会出现session不能使用的情况,并有类

  • PHP使用PDO操作数据库的乱码问题解决方法

    本文实例讲述了PHP使用PDO操作数据库的乱码问题解决方法.分享给大家供大家参考,具体如下: 当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码.以文件为 UTF-8 格式,其解决方法如下: (1)实例化的对象直接执行 query() 方法或者 exec() 方法: <?php class DB { static public function getDB() { try { $_opts_values = array(PDO::ATTR_PERSISTENT=>tr

  • thinkphp3查询mssql数据库乱码解决方法分享

    thinkphp查询mssql数据库出现乱码的原因是ThinkPHP默认为UTF-8,而msmsql数据库是简体中文版,存储的是GB2312编码 解决方法: 1:在ThinkPHP\Lib\Core 打开Db.class.php,在其最后面加上2:在Db.class.php找到function select(),在$result = $this->query($sql);后面加一条 $result=iconv2utf8($result),就OK了 复制代码 代码如下: public functi

  • 新手学PHP之数据库操作详解及乱码解决!

    很多朋友新学PHP也许在数据库方面会有点麻烦,尤其是MYSQL4.1.x以后会出现乱码问题.这里写个简单教程,希望对新手有点帮助.也许很多朋友之前是学ASP的(本人也是),有可能怀念ASP的set rs=adodb.recorset(我靠,太久没做ASP,后面的好像有点错,想不起来了!凑活着看吧!)然后就rs.open,rs.movenext...........可是PHPA是依靠很多数据库操作函数来控制,比如:mysql_connect();mysql_select_db();........

  • 解决php写入数据库乱码的问题

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php mysql数据库连接时乱码解决方法. MYSQL数据库使用UTF-8编码的问题 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将"整理"设置为:"utf8_general_ci"或执行语句: CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创建数据表的时候:如果是该字段

  • 解决hibernate+mysql写入数据库乱码

    hibernate.cfg.xml加上属性. <property name="connection.useUnicode">true</property> <property name="connection.characterEncoding">UTF-8</property> mysql 的驱动用3.0.15以上版本的, 加个Filter, 使用UTF-8字符集就可以了, 若使用Spring则写在spring中的s

  • nodejs和C语言插入mysql数据库乱码问题的解决方法

    在这里记录了nodejs过程中的一些乱码情况,这里的乱码主要是由于网页的编码方式与nodejs的默认解码方式(utf8)不一致所造成的.这一次要说一下的是在C语言和nodejs与MySQL进行交互的时候出现的乱码问题. 1,由于爬虫程序在多个Docker中执行,因此我需要定期的同步每一个docker中的mysql数据到一个全局的mysql数据表中.使用nodejs进行数据同步,出现中文乱码.要知道在每一docker中的中文是不存在乱码的.原因是nodejs默认处理字符是utf8,而mysql默认

  • php写入txt乱码的解决方法

    相信很多人在使用PHP的过程中都遇到过生成文件乱码的情况,不论是使用fwrite还是file_put_contents写入.可能你会先尝试从编码入手尝试解决,但最终的结果往往是不理想的,尽管我们都将其转换为了UTF-8编码了... 那么究其根本原因是什么呢?就是缺少头部BOM(当然,这里指的肯定不是Js的Bom). BOM 既然提到了BOM,那么可能有的同学不太了解这个家伙,这里我简单说一下,老鸟可以跳过.在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面

  • 解决python ogr shp字段写入中文乱码的问题

    首先,先确认一下你的字段值是不是乱码,如果是,按照以下方法: 我的字段值是来自于一个geojson字符串,我在对它解析时做了如下处理: properties = fea.get("properties") pro_json=json.dumps(properties) pro_json.replace('u\'','\'')#将unicode编码转化为中文先处理一下 pro_json=pro_json.decode("unicode-escape") #将unico

  • 解决Mysql5.7中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对MySQL的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度. 下面我们就直接使用如下操作解决: 一.打开mysql控制台,输入命令show variables like 'character%'; 显示如下: +--------------------------+-------------------------------

  • 配置python连接oracle读取excel数据写入数据库的操作流程

    前提条件:本地已经安装好oracle单实例,能使用plsql developer连接,或者能使用TNS连接串远程连接到oracle集群 读取excel写入数据库的方式有多种,这里介绍的是使用pandas写入,相对来说比较简便,不需要在读取excel后再去整理数据 整个过程需要分两步进行: 一.配置python连接oracle并测试成功 网上有不少教程,但大部分都没那么详细,并且也没有说明连接单实例和连接集群的区别,这里先介绍连接oracle单实例的方式,后续再补充连接oracle集群方式. 版本

  • 彻底解决Spring MVC中文乱码问题的方案

    乱码是让人很头疼的一件事,本文介绍了彻底解决Spring MVC中文乱码问题的方案,具体如下:  1:表单提交controller获得中文参数后乱码解决方案 注意:  jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <form

  • Python 解决中文写入Excel时抛异常的问题

    近期接到业务部门需求,需将统计结果每日发送到业务部门,在调试python脚本的时候,导出的Excel标题为中文,总是抛出以下异常 Traceback (most recent call last): File "totalpx.py", line 99, in <module> export() File "totalpx.py", line 54, in export workbook.save(out_path) File "/usr/li

  • Mysql数据库乱码问题的对应方式

    MySQL中数据库乱码一般进行字符集的设定即可,但是乱码可以出现在各个阶段,所以这篇文章整理一下乱码出现的各个阶段以及对应方法. 建库/建表时添加charset设定 建库 CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 建表 create table 表名(字段构成详细列表信息) default charset=utf8; 客户端显示 locale 确认locale设定是否为UTF8方式,一般服务器端没有问题

随机推荐