[php]建表并指定数据库编码Mysql数据库的编码
Mysql数据库的编码分为四级:
1、Mysql数据库服务器编码;
(在相应的配置文件中,需要修改配置文件)
2、Mysql数据库编码;
(可以在创建的时候指定,也可以在创建之后进行修改)
3、Mysq数据库中表的编码;
(可以在创建的时候指定,也可以在创建之后进行修改)
4、Mysql数据库表中字段的编码;
(可以在创建的时候指定,也可以在创建之后进行修改)
数据库编码选择的一般准则:
1、GBK/GB2312
适合纯中文存储的数据库
2、LATIN1
适合于纯英文的存储
3、UTF8
适合中英文混合编码的存储。
创建数据库database并指定编码和修改数据库编码: (数据库)
方法1、
create database db_name default character set utf8
方法2、
create database db_name default charset=utf8
修改DB的编码:
alter database db_name default character set utf8;
创建表table并指定编码:(表)
方法1、
create table table_name
(
......//字段信息
)default character set utf8;
方法2、
create table table_name
(
......//字段信息
)default charset=utf8;
修改表table的编码:
alter table table_name default character set utf8
指定字段field的编码: (字段) 仅有一种方法
方法:
create table table_name
(
filed_name varchar(20) character set utf8 //注意不能有default
);
修改字段field编码:
方法:
假如字段的限制是 varchar(20) not null default '';
alter table table_name change old_filed_name new_filed_name varchar(20) not null default 'abc' character set utf8;
change和modify的区别,modify只能修改字段属性,change可以修改字段名。
mysql set names 问题
mysql_query("set names 'utf8'");
一直以来总以为set names 是用来设置msyql 的字符集的,最近作个东西才发现自己认识上的错误,
查一下手册
set names ‘x‘语句与这三个语句等价:
mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;
set names 应该与前台页面的字符编码一致。
mysql -hhostname -Pport -uusername -ppassword -e sql,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。
这个中可以使用这个指定编码,避免乱码:
mysql -hhostname -Pport -uusername -ppassword --default-character-set=utf8 -s -e sql
热门文章推荐
- [php]优酷真实视频地址解析算法
- [Dz]discuz手机版支持视频播放的方法
- [PHP]php加密js解密的方法实例
- [php]用PHP打印出前一天的时间格式
- [PHP]mpeg,mp3,avi的ffmpeg的php转换类
- [php]php中3DES加密一个非常有用的3des加密
- [PHP]php.ini修改上传文件的大小限制处理方法
- [php]用过的最好用的php分页类源代码