45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > PHP教程 >

解决php mysql查询插入中文乱码问题

电脑软硬件应用网 45IT.COM 时间:2014-12-15 11:53 作者:佚名
对于初学php的朋友碰到问题肯定最多的就是php mysql查询插入中文乱码了,这个问题对于老手来讲不是问题,下面我根据自己的经验来给各位分析一下吧。

一.中文问题其实就是经统一编码了否则就会乱码

1.数据库与php页面编码统一

2.数据库数据表字段与页面编码统一

如果做到上面两种就不存在中文乱码问题了,那么我们来看mysql中文乱码问题解决例子

1.我的mysql表如下

--
-- 表的结构 `useradmin`
--

代码如下  

CREATE TABLE IF NOT EXISTS `userain` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`userpass` varchar(40) DEFAULT NULL,
`logins` int(4) NOT NULL DEFAULT '0' COMMENT '登陆次数',
`logintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`mid` char(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

上面所有的都是utf8编码了,这样我来测试一个中文

代码如下  

INSERT INTO `userain` (`id`, `我是中文`, `userpass`, `logins`, `logintime`, `mid`) VALUES
(1, 'admin', '7c1f03139281878059b909c42ccf2f6a', 0, '2010-04-14 14:20:26', '1');

我说可以正常进入也有人说肯定不行其实关键不在sql语句了,重点在于php连接mysql数据时的编码设置,如下。

页面编辑为gbk

代码如下  

<?php
//配置mysql数据库连接参数
$db = mysql_connect("localhost", "user","password");
mysql_select_db("message",$db);
//在执行sql语句之前加上下面这一行

?>

连接数据库之后提交肯定是乱码或保存不进行了,如果要解决这个mysql中文乱码问题很简单在查询处的

代码如下  

<?php
//配置mysql数据库连接参数
$db = mysql_connect(www.45it.net, "user","password");
mysql_select_db("message",$db);
//在执行sql语句之前加上下面这一行
mysql_query("SET NAMES 'utf8'",$db);

这样再提交你会发现就算你的页面是gbk的提交的数据保存也会成功哦

ps:对于ajax我们就一定要用uft8了,因为ajax只支持uft8模式传输数据。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识