mysql 更改数据库编码还是乱码_数据库编码问题导致写入数据乱码及修改编码的操作...

在连接数据库之后,读取数据之前,先执行一项查询“SET NAMES UTF8”,

即在PHP里为mysql_query("SET NAMES UTF8");

//该句话一定要放在数据库服务器连接语句【$connection=mysql_connect($db_host,$db_user,$db_psw)or die("连接服务器失败");】之后,即可显示正常(只要数据库里信息的字符正常)。

检测发现在MySQL命令行输入“SET NAMES UTF8;”,然后执行“show variebles like“character_set_%”;”,发现原来为latin1的那些变量“character_set_client”、“character_set_connection”、“character_set_results”的值全部变为utf8了,原来是这3个变量在捣蛋。

查阅手册,上面那句语句的效果相当于等于:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;

数据库中的编码问题和这三个参数有很大关系。

有2种写法示例如下:

SET NAMES 'utf8';UPDATE `[players]` SET name =  '你好' WHERE id =1

@mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);

同时介绍一下修改编码的几个操作:

1.修改数据库编码

如果是数据库编码不正确,可以在phpmyadmin 执行如下命令:

ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

以上命令就是将test数据库的编码设为utf8

2.修改表的编码:

ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

以上命令就是将一个表category的编码改为utf8

3.修改字段的编码:

ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

以上命令就是将test表中 dd的字段编码改为utf8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值