php创建MySQL表指定字符集_[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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值