PHP程序和MySql数据乱码问题原因及解决
PHP程序和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:显示页面编码:
注:如果你从程序或是直接在phpMYadmin里插入中文还出现乱码现象的话,你不防按下面的操作试!!!
进入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'
utf8和gbk之间的编码转换
function gb2utf($string) {
$out = iconv( "gb2312", "UTF-8" , $string);
return $out;
}
相关文档:
delimiter // 改变界定符 为//
列出所有数据库 show databases;
列出所有数据表 show tables;
改变连接数据库 use databaes
插入记录 insert into users(UserName,Password) values('ivwshjj','123456');
删除记录 delete from users  ......
环境软件版本介绍:
APACHE 2.0.59
PHP5.2.3
MYSQL5.0.45
GD-2.0.35
Zend Optimizer v3.3.0
  ......
闲话少说,先将它们打包成一个文件就叫fun.php吧
< ?php
function passport_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = ''; ......
从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!
相关设置是修改php.ini中的 date.timezone 参数:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =
默认是关闭的,只需把注释去掉,改为即可
[Dat ......