仓酷云

标题: MYSQL网页编程之完善办理mysql中文乱码的成绩 [打印本页]

作者: 若天明    时间: 2015-1-16 22:31
标题: MYSQL网页编程之完善办理mysql中文乱码的成绩
据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员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学习教程,最终导致客户为数据库资源投入巨额成本。
作者: 小妖女    时间: 2015-1-19 16:09
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
作者: 海妖    时间: 2015-1-27 21:12
总感觉自己还是不会SQL
作者: 飘飘悠悠    时间: 2015-2-5 12:12
比如日志传送、比如集群。。。
作者: 小女巫    时间: 2015-2-11 19:50
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
作者: 小魔女    时间: 2015-3-2 18:00
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
作者: 乐观    时间: 2015-3-11 05:05
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
作者: 金色的骷髅    时间: 2015-3-17 21:09
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 愤怒的大鸟    时间: 2015-3-25 03:04
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2