mysql数据乱码问题原因及解决(总结篇)
mysql数据乱码问题原因及解决(总结篇)
第一解决方法:
乱码问题简单说就是数据库写入读取,网页文件,网页显示时几个环节的编码不一致造成的。
乱码问题
写入时:页面提取写入数据编码和写入数据库时编码不一致
读取时:读取后所用编码与数据库写入时不一致
显示时:编码与数据库读取后的数据不一致
很显然只有三者都统一才行:(以utf-8为例)
1:页面提交数据编码utf-8(这也可以算是显示页面编码),
2:数据库写入时编码:alter database db default character set ‘utf8’collate ‘utf8-general-ci’,
3:数据库读取时所用编码:mysql_query(“set names ‘utf8’”);
4:显示页面编码:<meta http-equiv="Content-type"content=“text/html, charset=utf-8”>
第二解决方法:
进入MYSQL命令行:
mysql> alter database you_dbname default character set 'utf8';
mysql> SET character_set_client='utf8';
mysql> SET character_set_connection='utf8'
mysql> SET character_set_results='utf8'
第三解决方法:
(暂时只针对MySQL 5.0.16 乱码问题处理办法,其他版本未测试。)
1 设置phpMyAdmin
Language:Chinese simplified (zh-utf-8)
MySQL 字符集:UTF-8 Unicode (utf8)
MySQL 连接校对:gbk_chinese_ci
2 创建数据库时
整理设置成 gbk_chinese_ci
3 用SQL建立表中
ENGINE=MyISAM DEFAULT CHARSET=gbk;
ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;
4 检查表结构中
varchar(100) 的整理属性为gbk_chinese_ci
其它类型的整理属性为空
5 代码中加上
$db->query("SET CHARACTER SET GBK"); Linux下需要,Windows下不需要
这个相当于Connection Character Sets and Collations
以上是个人从网上搜索的一些总结和归纳,相信这个应该能解决所有乱码的问题了。
本文部分内容转载自php100.com,如有问题,请与本人联系。
相关文档:
一、建表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`NAME` varchar(16) NOT NULL default '',
`REMARK` varchar(16) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
&nb ......
9.3 MySQL存储过程
MySQL 5.0以后的版本开始支持存储过程,存储过程具有一致性、高效性、安全性和体系结构等特点,本节将通过具体的实例讲解PHP是如何操纵MySQL存储过程的。
实例261:存储过程的创建
这是一个创建存储过程的实例
录像位置:光盘\mingrisoft\09\261
实例说明
为了保证数据的完整性、一致性,提 ......
access denied for user 'root'@'localhost' (using password: YES);
今天用mysql的时候,登录的时候出现了这句,不知道是什么意思,因为我的mysql是装centos的时候一起装的,密码我就输入我的帐户密码,结果出现了上面那句;百度了一下,还真不少人出现了这个问题。。最后我找到了方法;
[root@localhost home]# mysql - ......
忘记MySQL ROOT密码是在MySQL使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流:
1、编辑MySQL(和PHP搭配之最佳组合)配置文件:
windows环境中:%MySQL_installdir%\my.ini
//一般在MySQL安装目录下有my.ini即MySQL的配置文件。
linux环境中:/etc/my.cnf ......
#!/usr/bin/perl
use Mysql;
print "Content-type:
text/html \n\n";
# MySQL
配置变量
$host = "localhost";
$database
= "testdb";
$tablename = "testtable";
$user = "username";
$pw =
"password";
# PERL MYSQL CONNECT()
$connect = ......