手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2010年07月7日的文章

张宴:当MySQL 和 Memcached 遇到尾部空格时

张宴遇到的问题,我没有遇到过,只是以前知道,mysql在varchar类型插入的时候,会把字符串末尾的空格取消的(难道我记错了?),char的没记。不过按照char的类型,他是会用空格补全长度。所以,即使没空格也会多出空格。但,用PHP取出来后,我就没有注意过了。。。

下面是张宴遇到的问题,不过我觉得还是有必要用PHP实现一下看看究竟怎么回事。。。

同事下午遇到一问题,MySQL 和 Memcached 对于同一个key,不能对应起来。最终原因是:PHP将key写入MySQL数据库之前,没有经过trim()过滤首尾空格(关键是尾部空格),结果:

1、MySQL的varchar、char类型字段,SELECT .... WHERE 查询时忽略字段的尾部空格。例如varchar类型字段uidcode中,存储的含有尾部空格的内容“rewinx ”,通过以下三种方式均可查询到:

大小: 4.38 K
尺寸: 420 x 351
浏览: 1480 次
点击打开新窗口浏览全图

在MySQL手册第“11.4.1. CHAR和VARCHAR类型”节中写道(http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char): 请注意所有MySQL校对规则属于PADSPACE类。这说明在MySQL中的所有CHAR和VARCHAR值比较时不需要考虑任何尾部空格。请注意所有 MySQL版本均如此,并且它不受SQL服务器模式的影响。

   2、PHP 的 Memcache 扩展,则在set、get时,自动将key中的空格,转换成了半角下划线“_”。当然,直接通过 Memcached 协议来读取,key值“rewinx ”就要写成“rewinx_”了。

示 例:testmc.php

PHP代码
  1. <?php  
  2. $memcache_obj = new Memcache;  
  3. $memcache_obj->connect('192.168.8.34', 11211);  
  4. $memcache_obj->set('rewinx ''hello world');  
  5. echo $memcache_obj->get('rewinx ')."\r\n";  
  6. ?>  

大小: 3.28 K
尺寸: 434 x 151
浏览: 1453 次
点击打开新窗口浏览全图

Tags: mysql, memcached

四季网

一大早小茗就在QQ上告诉我他的四季网终于开始折腾并部分上线了。兴冲冲的走过去一看,原来他的四季网目前就提供了手机软件下载。

略微瞅了一下,内容还并不是太多,不过已经有点框架在了,主要还是针对一些智能机了(旁白:废话,不是智能机有必要下载手机软件吗)。默认是HTC品牌,难道是想乘着HTC最近高调进入国内而开始主打这个分类?

不过据我知道的,小茗的手机本身也就是HTC的,当然,我的也是。只是他是WM系统而我是android系统。

正因为我是HTC android的系统,找到左边的G2分类,看了看软件,嗯。还是有一些值得看看的,平时不太注意,但有可能有用的软件上面还是不少【虽然market上有分类,但毕竟不象下载站那些会分的很细】

点开每个软件的页面,还是比较简陋。不过小茗也说了最近公司在忙,忙完这段时间就开始折腾页面了。对于一个专业人士来说,做点页面当然不是问题。。

最后看了一下博客,本以为他会把最新更新和想法之类的写在博客里。却看到了typecho这个。用的是m4的模版。额,大吃一惊。

不管怎么样,还是希望小茗这个暂时只有手机软件下载的四季网能够发展起来吧。要知道如今有想法想做一个站的人已经是越来越多,但真正能够成功的却廖廖无已了。

Tags: 四季网, 4gcn, typecho