当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-05-02 15:51:00  来源:本站整理

举例详解MySQL字符集[MySQL防范]

赞助商链接



  本文“举例详解MySQL字符集[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

举例详解MySQL字符集,下面是完好的一个例子:

1、成立数据库

mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;

#注意背面这句话 "COLLATE utf8_general_ci",大致意思是在排序时按照utf8校验集来排序

#那么在这个数据库下成立的全部数据表的默许字符集城市是utf8了

mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;

#这句话就是成立一个表了,拟定默许字符集为utf8

2、写数据

例子1是通过PHP直接插入数据:

a.phpmysql_connect('localhost','user','password');mysql_select_db('my_db');//请注意,这步很关键,假如没有这步,全部的数据读写城市不精确的//它的作用是设置本次数据库联接历程中,数据传输的默许字符集//其他编程语言/接口也近似,比方 .net/c#/odbc//jdbc则设置衔接字符串为近似"jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF-8"mysql_query("set names utf8;");//必须将gb2312(本地编码)转换成utf-8,也可以利用iconv()函数mb_convert_encoding("insert into my_table values('测试');", "utf-8", "gb2312");?>b.php//输出本页编码为utf-8header("content-type:text/HTML; charset=utf-8");mysql_connect('localhost','user','password');mysql_select_db('my_db');mysql_query("set names utf8;");if(isset($_REQUEST['name')){//由于上面已经指定本页字符集为utf-8了,因此无需转换编码mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));}$q = mysql_query("select * from my_table");while($r = mysql_fetch_row($q)){print_r($r);}?>

自此,利用utf8字符集的完好的例子完毕了.

假如你想利用gb2312编码,那么倡议你利用latin1作为数据表的默许字符集,这样就可以直接用中文在号令行工具中插入数据,并且可以直接显示出来.而不要利用gb2312大概gbk等字符集,假如耽忧查询排序等问题,可以利用binary属性约束,比方:

create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;

附1:旧数据进级办法

以本来的字符集为latin1为例,进级成为utf8的字符集.本来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8).

第一步:导出旧数据

mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql

第二步:转换编码(近似Unix/Linux环境下)

iconv -t utf-8 -f gb2312 -c old.sql > new.sql

大概可以去掉 -f 参数,让iconv自动判断本来的字符集

iconv -t utf-8 -c old.sql > new.sql

在这里,假定本来的数据默许是gb2312编码.

第三步:导入

改正old.sql,在插入/更新语句开始之前,增添一条sql语句:

"SET NAMES utf8;"

,保存.

mysql -hlocalhost -uroot my_db < new.sql

大功告成!!

附2:支持查看utf8字符集的MySQL客户端有

1.) MySQL-Front,据说这个项目已经被MySQL AB勒令终止了,不知为什么,假如国内还有不少破解版可以下载(不代表我举荐利用破解版 :-P).

2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需求付费.

3.) PhpMyAdmin,开源的php项目,非常好.

4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,衔接到MySQL之后,履行 SET NAMES UTF8; 也能读写utf8数据了.   以上是“举例详解MySQL字符集[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 举例详解MySQL字符集
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .