仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 883|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之完善办理mysql中文乱码的成绩

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。mysql|sql|办理|成绩|中文乱码*MySQL(和PHP搭配之最好组合)中文乱码的缘故原由
MySQL(和PHP搭配之最好组合)会呈现中文乱码的缘故原由不过乎以下几点:
-MySQL(和PHP搭配之最好组合)server自己设定成绩,比方还停止在latin1
-MySQL(和PHP搭配之最好组合)table的语系设定成绩(包括character与collation)
-客户端程式(比方php)的连线语系设定成绩
在之前的两篇文章中已先容过怎样设定MySQL(和PHP搭配之最好组合)server/table的character/collation。
接上去只必要增补几点注重事:
*MySQL(和PHP搭配之最好组合)中文乱码必胜办理法

1、MySQL(和PHP搭配之最好组合)启动时会读取一个预设的config档,一样平常称号为my.ini,而它会到以下两地位往寻觅这个档案:
C:windowsmy.ini也就是功课体系的安装目次,也有多是C:winntmy.ini
C::my.cnf也就是Cdisk的根目次

注重分歧地位里的档案suffix纷歧样,这点在之前的文章中没有出格夸大,因而当时我是用更庞大的办法间接从头将MySQL(和PHP搭配之最好组合)注册到service内里,并在那边指定my.ini的地位。

2、my.ini里的内容为:
[MySQL(和PHP搭配之最好组合)d]
default-character-set=utf8

[client]
default-character-set=utf8
init_connect=SETNAMESutf8

个中MySQL(和PHP搭配之最好组合)d是指定server启动时要用的语系,但假如这里设定为utf8大概会让很多英文软体不高兴,比方osCommerce/mediaWiki,以是这里倡议设成latin1。
上面的client则是设定当client连线时要利用甚么语系,但惋惜的是这个设定不是每一个client城市鸟它,基础上只要MySQL(和PHP搭配之最好组合)自已家的程式,比方MySQL(和PHP搭配之最好组合).exe,MySQL(和PHP搭配之最好组合)d.exe,MySQL(和PHP搭配之最好组合)admin.exe或是MySQL(和PHP搭配之最好组合)ControlCenter这类程式会往读取这个设定档然后改用utf8连线。
note:感激b6s桑热忱互助供应第二行指令,听说比一支支php程式往设定connectionsetting更快,如许应当也能够特地办理phpmyadmin没法准确显现unicode中文的成绩(不外amfphp到是不吃这套,必定要乖乖的自已设定语系才行)

但年夜部分工程师应当都是自已写php/jsp(SUN企业级使用的首选)程式往连线,此时天然不会读取这个设定而持续利用预设的语系-latin1。

这也恰是八成来信伴侣阵亡的中央。

一般我会用一个自力的档案来处置MySQL(和PHP搭配之最好组合)connection的设定,比方:
PLAINTEXT
<?
//databaseconnectiondetails.
&#36;host="localhost";
&#36;link=MySQL(和PHP搭配之最好组合)_connect(&#36;host,"xxx","xxx");
MySQL(和PHP搭配之最好组合)_query("SETNAMESutf8");
MySQL(和PHP搭配之最好组合)_select_db("your_table_name_here",&#36;link);
?>

请注重在MySQL(和PHP搭配之最好组合)_connect后第五行的中央有加上一个"setnamesutf8"的指令,告知MySQL(和PHP搭配之最好组合)这个connection以后的连线内容都要利用utf8,经由如许设定后,一般就能够办理年夜部分成绩。
从这里也能够推想得知,假如你有效某种customconnectionpooling机制,就要记得在每次创建新的connection后当即设定为utf8。
这组设定经由几天的反覆测试(利用中文繁、简、日文、韩文)后已证明完整不会有乱码或是某些字酿成"口"。
例子:试者输出这几个字「不道能否谷绻悄苷方MySQL(和PHP搭配之最好组合)再被读出来,那就是中文没成绩了,假如读出来后酿成『口』字那就是反动还未乐成同道仍需勉力...orz
固然我也特地考证了flex2-amfphp-php-MySQL(和PHP搭配之最好组合)往返传resultset也不再见有中文乱码成绩,能够放心利用

为维持生产环境和非生产环境需要不断地投入管理支持费用MySQL学习教程,最终导致客户为数据库资源投入巨额成本。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-25 03:04:22 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-17 21:09:29 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
乐观 该用户已被删除
7#
发表于 2015-3-11 05:05:41 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
小魔女 该用户已被删除
6#
发表于 2015-3-2 18:00:52 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
小女巫 该用户已被删除
5#
发表于 2015-2-11 19:50:43 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-5 12:12:10 | 只看该作者
比如日志传送、比如集群。。。
海妖 该用户已被删除
板凳
发表于 2015-1-27 21:12:57 | 只看该作者
总感觉自己还是不会SQL
小妖女 该用户已被删除
沙发
发表于 2015-1-19 16:09:29 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表