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

号码小助手

号码小助手,会自动将号码分析成:AAAB,AABB,ABAB之类的方式。
调用方式:http://ixyz.sinaapp.com/api/phone?h=13912341234,13912123344,13912345678&type=json
默认返回值是json,可支持json,xml,text三种返回形式
号码最多一次传10个
PHPCODE:
esult = file_get_contents('http://ixyz.sinaapp.com/api/phone?h=13912341234,13912123344,13912345678&type=json');
返回值是:
json格式返回
{"phones":{"13912341234":["ABCD","ABCDABCD"],"13912123344":["ABCD","ABCDABCD","AABB","ABCD","ABAB"],"13912345678":["ABCD","ABCDABCD","AABB","ABCD","ABAB","ABCD"]},"copyright":"Written by walkerlee, api support by gouki","error":"sorry,phone doesn't match"}
xml格式返回:

XML/HTML代码【xml返回的格式结果与json的有一点点不太一样】
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <root>  
  3.     <result>  
  4.         <phones>  
  5.             <phone number="13912341234">  
  6.                 <ABCD>ABCD</ABCD>  
  7.                 <ABCDABCD>ABCDABCD</ABCDABCD>  
  8.             </phone>  
  9.             <phone number="13912123344">  
  10.                 <ABCD>ABCD</ABCD>  
  11.                 <AABB>AABB</AABB>  
  12.                 <ABAB>ABAB</ABAB>  
  13.             </phone>  
  14.             <phone number="13912345678">  
  15.                 <ABCD>ABCD</ABCD>  
  16.             </phone>  
  17.         </phones>  
  18.         <copyright><![CDATA[Written by walkerlee, api support by gouki]]></copyright>  
  19.     </result>  
  20. </root>  

 

----------
目前支持的类型有:
XML/HTML代码
  1. Array  
  2. (  
  3.     [0] => AABB  
  4.     [1] => ABCD  
  5.     [2] => AAAB  
  6.     [3] => ABAB  
  7.     [4] => ABCABC  
  8.     [5] => ABCDABCD  
  9.     [6] => ABBB  
  10.     [7] => ABCCBA  
  11.     [8] => ABBA  
  12.     [9] => AAAA  
  13.     [10] => AAAAA  
  14.     [11] => AAAAAA  
  15.     [12] => AAAAAAA  
  16.     [13] => AAAAAAAA  
  17.     [14] => ABCDCBA  
  18.     [15] => ABCDDCBA  
  19.     [16] => ABCBA  

---------
以上类型可以根据需要随便加,如果你觉得有哪些规则不错,你可以告诉我(这个正则是自动生成的,因此只要告诉规则就OK了)
嗯,这个程序的核心函数是walkerlee写的,我只是稍稍的封装处理了一下

Tags: sae, php, yii4sae

关于教育孩子

这是一张来自微博的图片,我用微软的OCR解析了一下,可能不太正确,我也不深究了,想仔细看就点击小图看大图吧?

大小: 192.99 K
尺寸: 38 x 376
浏览: 1758 次
点击打开新窗口浏览全图

解析后的正文:

XML/HTML代码
  1. 美国人带孩子的17个绝招  
  2. 我在美国生了两个孩子,生育前后都有培训班,家庭医生每次洗  
  3. 脑让我受益匪浅,我的两个宝宝在婴儿时期乖巧得好像家里没有  
  4. 小婴儿,我甚至疑心她们会不会哭?如今外婆常室这句傻话笑我  
  5. .回国后看到朋友或邻居们被小祖宗折磨得精疲力竭,想着将妈  
  6. 妈经写下来,或许可以帮到被小祖宗弄得手忙脚乱、身心疲惫的  
  7. 年轻爸爸妈妈.再次感谢南加州著名的儿科医生J川佗Gu,这几  
  8. 年在她的指导下学到很多一辈子都受益的育儿宝典。  
  9. 绝招一:如何让小宝宝不哭  
  10. 爱哭的B朋锗吕是爸妈教出来的.才出生的小B朋润斤不懂话,他们  
  11. 靠条件反射来做判断.中国的家长一听到孩子哭就抱起来.JAI花  
  12. 哑呈生反复告诫我:孩子一哭就放下来,不哭才抱起来,正好反  
  13. 过来。这样一来,再小的孩子都能明白,不哭的时候才有得抱,  
  14. 这招极灵.放下爱哭的孩子开始训练,看着时钟,不要抱让她哭  
  15. ,准备等10分钟再抱.第一次可以设定5分钟,以后一次比一次  
  16. 时间拉长,我的妞妞第一饮就没有熬到5分钟,大约3分半的时候  
  17. 就停了,我已经心疼得肝肠寸断自己都快哭了,一定要忍住了。  
  18. 让孩子知道哭声是叫不来妈妈的.训练“不哭的孩子”要排除4  
  19. 个哭的其他原因:尿了、病了、饿了,困了.上帝保佑,我家两  
  20. 个孩子都不会无理由哭,偶尔哭一下当作运动也是极少数,妞妞  
  21. 和妙妙100%是快乐的宝宝,躺在床上都咯咯笑出声的孩子.  
  22. 绝招二:如何让刚出生的小宝宝一觉睡到天亮  
  23. 美国医生再三批评我:你不是好妈妈,隔壁的孩子一睡到天亮,  
  24. 隔壁的妈妈是好妈妈,你不是!每次去看家庭医生我都挨批评,  
  25. 原因是我晚上要喂奶1一2饮,抱怨养孩子很累很辛苦.医生告诉  
  26. 我一个观念:人类晚上不需要进食l我傻乎乎}司,为什么呢?医  
  27. 生没办法,只好大声说:因为我们是人类l我印象极深,妞爸早  
  28. 就笑弯腰了.很显然,我担心B朋Y晚上会饿根本是多余的,  
  29. 10一12小时的连续睡眠,对孩子来说比吃奶重要100倍!我们被老  
  30. 大妞妞折磨很惨,晚上吃一顿奶的坏习惯一直延续到快2岁。养  
  31. 老二的时候按照医生说的,彻底让我和老公解脱出来,从刚出生  
  32. 到一个礼拜我家妙妙被训练距离5个小时才吃奶,2个礼拜之后,  
  33. 孩子就能睡天亮了.晚上不需要吃奶!!!(三个感叹号是请妈  
  34. 妈们切记的意思)  
  35. 绝招三:如何让宝宝自己静静入睡,不要摇晃  
  36. 医生说,一个快乐的B朋丫会睡在床上唱歌的(不是真唱,是婴儿  
  37. 峥峥呀呀)!婴儿的大部分时光都需要在床上度过,这里请爸爸  
  38. 妈妈们记住,床是不会动的!所以,抱起婴儿的时候不要摇晃,  
  39. 不要来回走动,更不要这样哄孩子睡觉,轻轻放在床上让他自己  
  40. 睡就好.再说一次,床是不会动的.爸爸妈妈你们没有权利剥夺  
  41. 孩子躺在床上享受快乐的权利.还有更重要的就是,兴奋的家长  
  42. 不要用力和孩子“疯闹”,孩子的大脑在婴儿时期还是胶状的果  
  43. 冻状态,很容易受伤。  
  44. 绝招四:跃着睡养美女  
  45. 个人经验,孩子趴着睡觉比仰着睡得安稳,才出生的孩子心脏朝  
  46. 下,几乎不会一惊一惊的状态,模仿子宫被包裹的状态.另一个  
  47. 最大的好处是改变亚洲人的大饼脸,5夭之内的婴儿需要1个小时  
  48. 帮忙翻脸,5天之后,我家妞就会自己左右转向自如了。妞是标  
  49. 准的小脸,和生出来的时候大方脸好像变了一个孩子,呵呵,得  
  50. 意.老二妙妙的脸没有刻意这样做,那时候妞妞需要人照顾,没  
  51. 有精力l个小时翻头的精力了,很可惜.这个机会只有在出生到3  
  52. 个月之内有效,大了就没用了.  
  53. 绝招五:宝宝的抵抗力比你强十倍  
  54. 爸爸妈妈穿2件,宝宝绝不能穿2件半,只能比你穿的少,不能比  
  55. 你穿的多.我家两个孩子都十分强壮,冷热其实很好控制,偶尔  
  56. 看到儿童医院发烧的孩子被花被子棉袄裹着一层一层的,可怜啊  
  57. ,孩子不会说话,都是家长害的.  
  58. 绝招六:拒绝抗生素!  
  59. 感冒发烧是孩子成长的过程,是增强抵抗力的过程。我家宝宝发  
  60. 烧了最常用的就是用冰敷,用有拉链的保鲜袋装冰块,用干净毛  
  61. 巾裹了冰敷在全身,30分钟一定退烧.烧厉害了配点美林或泰诺  
  62. .如果是着凉了感冒没有发烧,就让孩子吊着鼻涕没有事,几天  
  63. 就好.不要相信任何药能治疗感冒。到目前为止,除了去年的手  
  64. 足口被医院骗进去那一饮之外,我家2个孩子从来没有挂过盐水  
  65. 和注射过抗生素。在美国,是那种要死的病才注射抗生素的,在  
  66. 中国注射室的景观,吓坏了妞妞的爸爸,那个景象让人发毛他说  
  67. .一排一排的吊针,打手打头打脚的小孩子们在妈妈爸爸爷爷奶  
  68. 奶的陪护下挂盐水.集中营莫过如此,很恐怖.花钱不说,更可  
  69. 怕的是体内的细菌大战存留的各种毒越来越多,周期性的需要挂  
  70. 盐水来压下去,常常听到妈妈们说,有一点症状马上挂水压下去  
  71. ,十分得意。我为她们的无知十分.宛借.我的孩子越来越健壮,  
  72. 从不生病,病了也几天自己好,基本不治疗.邻居的孩子半夜跑  
  73. 医院,累的人仰马翻乐此不疲,从这点看我是好妈妈。  
  74. 绝招七:天天洗澡,用清水,少用沐浴露  
  75. 我的2个宝宝健康的另外一个原因是天天洗澡,夭夭洗澡是必要  
  76. 的.记得我生完孩子出来,准备听我妈妈的教诲躺着不动,打算  
  77. 熬到第二夭才洗澡,护士惊讶地拉我起来洗澡“不管你什么传统  
  78. ,把汗水和细菌都洗掉才会健康”。我被误会成个脏妈妈被拖去  
  79. 洗澡,当然要说明的是我生两个都是顺产.产妇如此。何况小孩  
  80. 子?孩子每天运动量大,臭汗奶腥昧便便尿尿什么昧道都有,一  
  81. 定要洗澡,不能隔天才洗.这也是健康不生病的重要原因,他们  
  82. 不会着凉的,抵抗力比成人强十倍。医生交代:宝宝洗澡尽量用  
  83. 清水,再名牌的婴儿产品都不如清水好,不要用任何沐浴露、洗  
  84. 发水,清水最最好!医生说尽量不用,一定要用的话一个星期用  
  85. 一饮沐浴露就好,我家是三夭用一次(我觉得一周太长了,心理  
  86. 作用).  
  87. 绝招八:没有奶不够吃的妈妈,只有不想喂奶的妈妈  
  88. 能吃到2岁半是夭下最幸福的宝宝.J州E喊呈生说,没有奶不够  
  89. 吃的妈妈,只有不想喂奶的妈妈,孩子的食量多大,妈妈的奶就  
  90. 有多少,生双胞胎的妈妈的奶同样够两个孩子吃.这一点我很失  
  91. 败,尽管城呈生用笔画了一个圆圈,她告诉我,你的孩子吃多少  
  92. ,你就能生产多少,你觉得奶不够,加奶粉进去,奶就会真的不  
  93. 够,最后就没了,事实证明我后来真的越来越少直到没了.孩子  
  94. 不会说话,她吃饱没有很难知道,妈妈觉得奶少了就放弃母奶,  
  95. 就补奶粉,其实是告诉自己的身体,我只能生产这么多了.要相  
  96. 信自己能当头称职的奶午。如果再生一个,一定要证明一下。生  
  97. 完小孩第三夭就去医院参加“喂奶班”,几个妈妈带婴儿围成一  
  98. 圈,有黑妈妈白妈妈和亚洲妈妈,喂奶课用的是那种很舒服的沙  
  99. 发,脚下有垫脚的专用凳子.医生们将孩子脱光,包括尿布,然  
  100. 后称B朋Y的重量精确到小数点后面2位数.然后让我们抱孩子喂  
  101. 奶,不准穿衣服只穿尿布.医生一对一教妈妈们如何让孩子一口  
  102. 就咬准奶头,如何保护奶头,一改一次训练,期间有别的妈妈来  
  103. 用免费提供的吸奶机下奶,用塑料袋装回家.我刚开始的害羞和  
  104. 尴尬·量漫没有了,呵呵,我在家完全不知道妞妞吃了多少,这下  
  105. 好了,一堂课下来,马上称孩子份量,我妞妞吃了不少,好像是  
  106. 那天的第二名,前后数据证明,我有奶.  
  107. 绝招九:宝宝吃奶睡着怎么办?  
  108. B朋Y被妈妈抱看舒服又安全,没吃饱就睡着了,醒了又吃两口,  
  109. 折磨妈妈,宝宝也吃不饱睡不好,害人害己.训练班里学到最有  
  110. 用的一招,如何弄醒孩子让他们专心吃奶,就是脱衣服}脱得就  
  111. 乘l尿布,医生告诉我,放心吧,你抱着她有妈妈的体温,这体温  
  112. 能保证婴儿不会着凉,温度刚刚好,B胡Y有一点凉意,他们会用  
  113. 心进餐(她说的真是进餐,呵呵).放心吧,这些看起来弱不禁  
  114. 风的小东西,从妈妈母体带出来的抵抗力比成人强10倍,喂奶的  
  115. 产妇也不容易病,这就是繁殖的力量.(当然室内的温度是有一  
  116. 定温暖的,国内无空调寒冷地区的人不要对照模仿误会)  
  117. 绝招十:母奶是最好的“抗生素,  
  118. 妞妞大概10来天的时候,一只眼睛发炎化脓了,我和妞爸吓得抱  
  119. 到医院,还是急诊,儿科的男医生}司,你喂奶还是奶粉,我说母  
  120. 奶。他说挤点出来放进孩子眼睛,B朋Y就会好.狐at?我排队等  
  121. 急诊老半天就这么打发我回家了.于是如法炮制,母奶当药,几  
  122. 天后妞妞果然见好,是否母奶的原因还是不清不楚,美国医生忽  
  123. 悠得或许有点道理吧.总之母奶是好东西.  
  124. 绝招十一:你会换尿布吗?  
  125. 废话,养孩子的谁不会换尿布呢?不一定峨。你是否有被孩子喷  
  126. 到尿或臭便便的时候呢?一天洗5饮床单是我的最高记录.换尿  
  127. 布的时候,每饮来的新阿姨都要重新教一遍,窍门就是把干净尿  
  128. 布放在臭尿布下面,再打开尿布,擦干净抽出来,这样即使孩子  
  129. 正好那时候又便又尿,你的床单保住了.习惯这么做以后,永远  
  130. 没有意外发生.  
  131. 绝招+二:你会拍编吗?  
  132. 姿势一,趴在肩膀上轻拍孩子后背,这种是传统姿势,很多时候  
  133. 不太容易拍出来隔.  
  134. 姿势二:让孩子侧坐在腿上,左手托着孩子的脖子,撑起下巴,  
  135. 右手拍后背,这样效率极高,通常十几下就拍出隔了.临睡的最  
  136. 后一顿奶,一定要喂饱足了,拍完.禹继续喂,我家妙妙2礼拜就  
  137. 睡整晚就是用这招,拍完隔还可以再喂2一3次,直到她真的不吃  
  138. 了,小嘴巴往外推奶瓶的状态,妙妙就能睡到天亮.  
  139. 绝招十三:早点吃五谷杂狠  
  140. 4个月吃米粉再大点跟大人一起吃东西,孩子长大不太会偏食,  
  141. 早点吃和成人一样的食物对孩子有好处.6颗牙的时候,J扣花Gu  
  142. 医生说,她已经可以用这几颗牙齿吃很多东西了,什么都可以喂  
  143. ,没有不能吃的。  
  144. 绝招十四:别破坏宝宝的专注力  
  145. 再小的宝宝玩玩具或看电视或看图画书的时候,请家里的阿姨或  
  146. 者任何人都别打断她们。即使是吃饭的时间到了,晚一点也没有  
  147. 关系.培养孩子的专注力就等于培养她们长大了能注意力集中做  
  148. 任何事情.我家妞妞专注力很好,她喜欢的事,比如拼图,一个  
  149. 下午几个钟头不抬头,没有人叫她,除了尿尿之外。最怕那种大  
  150. 呼小叫逗孩子的长辈们,自以为聪明,边看电视边I动司题.闭嘴  
  151. ,请安静.给孩子一个专注的环境吧.  
  152. 绝招十五:慢慢走路,小声说话  
  153. 身体力行很重要,大人怎样的孩子都会学.难得遇到上海一位陆  
  154. 老师,教孩子·隆漫走路,轻声说话,人家听得到就好了,别那么  
  155. 大声.回了家乡,小区的幼儿园老师教孩子们扯起嗓门唱歌,我  
  156. 在一旁看,心想完了,培养了半天的小淑女被汉派文化同化了,  
  157. 哈哈,如今的妞妞热干面一样的个性十足,整个儿一辣妹.大环  
  158. 境很厉害,几乎没有不被同化的可能.  
  159. 绝招十六:只要没有生命危险,鼓励宝宝试试看,摸摸看  
  160. 中国父母礼节有余,胆子太小.“别动,危险,站起来地上脏,  
  161. 别摸,会刺到。…不许这样,不许那样”美国父母最常说的  
  162. 却是“TryitJ”试试看,摸摸看.鼓励宝宝,只要没有生命危  
  163. 险,不要阻止孩子用他们的小手尝试和认识世界.大不了衣服弄  
  164. 脏,地上滚来滚去的宝宝时光很短,饭粒菜汤翻了一地,大不了  
  165. 扫一下他们会早学会吃饭甚至用筷子,玩水大不了感冒,玩沙子  
  166. 大不了进鞋子难受难清洁.总之有很多阻碍孩子快乐的条条框框  
  167. ,促使我们的小夭使们越来越快地变成成人,变成听话和懂事的  
  168. 孩子。快乐第一重要,衣服脏了不重要,只要没有生命危险,不  
  169. 要阻止我的孩子.  
  170. 绝招十七:也是最重要的一招,一天只能批评两饮,  
  171. 父母也不可以随便批评宝宝,一夭只能批评两次,两饮用完了就  
  172. 等明天的配额吧.美国老师这么慎重交代的.于是,宝宝外婆说  
  173. “你的孩子一天10改都不够,2次的话我10分钟就用完了,这  
  174. 太难了.我大笑.在婴儿的时期,批评有用吗?拉个便便也被阿  
  175. 姨批评“宝宝又干坏事了”我会反l'ed阿姨,你有哪天不拉屎吗?  

增加MYSQL的插入值的容错性

众所周知,我们在插入数据库的时候,都是:insert into table (xxx) values('0');这种方式。
嗯,如果xxx是char或者varchar,并不会出错,但如果xxx是int型或者日期型,则可能会出错,也可能不出错,这是由您的配置决定的。
您可以看这里:
1.修改my.ini

XML/HTML代码
  1. ctrl+f 查找 sql-mode  
  2.   
  3. 将它值改为 "ANSI"  
  4. sql-mode="ANSI";  
  5. 重启数据库,就ok了.  

2.动态修改数据库模式

XML/HTML代码
  1. 在启动数据库后,使用sql语句 SET sql_mode='ansi' ,   

就ok了

--------------------------------------------------
第2个方法没用过.... T.T
手册地址在这.
http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/database-administration.html#server-sql-mode
sql-mode 是服务器模式
值的不同,mysql处理sql语句的方式也不同.

当值为ansi时,
mysql将更改sql语句的语法和行为,使其更符合标准SQL。
说白了,就是会修改错误.容错性高.

这样你给datetime项 和 int项 插入 空字符串,
mysql会将datetime的空字符改为 0000-00-00 00:00,
将int的空字符串改为0 .
其他值的作用.自己看手册.
-------上面这一段内容来自:http://ymx.iteye.com/blog/829046
是因为fireguns在询问的时候才想起要查这玩意,所以我就问了一下google

然后,firegus找到的资料是:

XML/HTML代码
  1. # Set the SQL mode to strict  
  2. sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”  
  3.   
  4. 改为:  
  5.   
  6. # Set the SQL mode to strict  
  7. sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”  

手册上说的SQLMODE是指:

XML/HTML代码
  1. 5.3.2. SQL服务器模式  
  2.   
  3. MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式。这样每个应用程序可以根据自己的需求来定制服务器的操作模式。  
  4.   
  5. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL。  
  6.   
  7. 你可以用--sql-mode="modes"选项启动mysqld来设置默认SQL模式。如果你想要重设,该值还可以为空(--sql-mode ="")。  
  8.   
  9. 你还可以在启动后用SET [SESSION|GLOBAL] sql_mode='modes'语句设置sql_mode变量来更改SQL模式。设置 GLOBAL变量时需要拥有SUPER权限,并且会影响从那时起连接的所有客户端的操作。设置SESSION变量只影响当前的客户端。任何客户端可以随时更改自己的会话 sql_mode值。  
  10.   
  11. Modesis是用逗号(‘,’)间隔开的一系列不同的模式。你可以用SELECT @@sql_mode语句查询当前的模式。默认值是空(没有设置任何模式)。  
  12.   
  13. 主要重要sql_mode值为:  
  14.   
  15. ·         ANSI  
  16.   
  17. 更改语法和行为,使其更符合标准SQL。  
  18.   
  19. ·         STRICT_TRANS_TABLES  
  20.   
  21. 如果不能将给定的值插入到事务表中,则放弃该语句。对于非事务表,如果值出现在单行语句或多行语句的第1行,则放弃该语句。本节后面给出了更详细的描述。  
  22.   
  23. ·         TRADITIONAL  
  24.   
  25. Make MySQL的行为象“传统”SQL数据库系统。该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,这种方式不是你想要的,因为出现错误前进行的数据更改不会“滚动”,结果是更新“只进行了一部分”。  
  26.   
  27. 本手册指“严格模式”,表示至少STRICT _TRANS_TABLES或STRICT _ALL_TABLES被启用的模式。  
  28.   
  29. 下面描述了支持的所有模式:  
  30.   
  31. ·         ALLOW_INVALID_DATES  
  32.   
  33. 在严格模式下不要检查全部日期。只检查1到12之间的月份和1到31之间的日。这在Web应用程序中,当你从三个不同的字段获取年、月、日,并且想要确切保存用户插入的内容(不进行日期验证)时很重要。该模式适用于DATE和DATETIME列。不适合TIMESTAMP列,TIMESTAMP列需要验证日期。  
  34.   
  35. 启用严格模式后,服务器需要合法的月和日,不仅仅是分别在1到12和1到31范围内。例如,禁用严格模式时'2004-04-31'是合法的,但启用严格模式后是非法的。要想在严格模式允许遮掩固定日期,还应启用ALLOW_INVALID_DATES。  
  36.   
  37. ·         ANSI_QUOTES  
  38.   
  39. 将‘"’视为识别符引号(‘`’引号字符),不要视为字符串的引号字符。在ANSI模式,你可以仍然使用‘`’来引用识别符。启用ANSI_QUOTES后,你不能用双引号来引用字符串,因为它被解释为识别符。  
  40.   
  41. ·         ERROR_FOR_DIVISION_BY_ZERO  
  42.   
  43. 在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误(否则为警告)。如果未给出该模式,被零除时MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果为NULL。  
  44.   
  45. ·         HIGH_NOT_PRECEDENCE  
  46.   
  47. NOT操作符的优先顺序是表达式例如NOT a BETWEEN b AND c被解释为NOT (a BETWEEN b AND c)。在一些旧版本MySQL中, 表达式被解释为(NOT a) BETWEEN b AND c。启用HIGH_NOT_PRECEDENCESQL模式,可以获得以前的更高优先级的结果。  
  48.   
  49. mysql> SET sql_mode = '';  
  50.   
  51. mysql> SELECT NOT 1 BETWEEN -5 AND 5;  
  52.   
  53.         -> 0  
  54.   
  55. mysql> SET sql_mode = 'broken_not';  
  56.   
  57. mysql> SELECT NOT 1 BETWEEN -5 AND 5;  
  58.   
  59.         -> 1  
  60.   
  61. ·         IGNORE_SPACE  
  62.   
  63. 允许函数名和‘(’之间有空格。强制将所有函数名视为保存的字。结果是,如果你想要访问保存为字的数据库、表或列名,你必须引用它。例如,因为有USER()函数,mysql数据库中的user表名和该表内的User列被保存下来,因此你必须引用它们:  
  64.   
  65. SELECT "User" FROM mysql."user";  
  66.   
  67. ·         NO_AUTO_CREATE_USER  
  68.   
  69. 防止GRANT自动创建新用户,除非还指定了密码。  
  70.   
  71. ·         NO_AUTO_VALUE_ON_ZERO  
  72.   
  73. NO_AUTO_VALUE_ON_ZERO影响AUTO_INCREMENT列的处理。一般情况,你可以向该列插入NULL或0生成下一个序列号。NO_AUTO_VALUE_ON_ZERO禁用0,因此只有NULL可以生成下一个序列号。  
  74.   
  75. 如果将0保存到表的AUTO_INCREMENT列,该模式会很有用。(不推荐采用该惯例)。例如,如果你用mysqldump转储表并重载,MySQL遇到0值一般会生成新的序列号,生成的表的内容与转储的表不同。重载转储文件前启用NO_AUTO_VALUE_ON_ZERO可以解决该问题。mysqldump在输出中自动包括启用NO_AUTO_VALUE_ON_ZERO的语句。  
  76.   
  77. ·         NO_BACKSLASH_ESCAPES  
  78.   
  79. 禁用反斜线字符(‘\’)做为字符串内的退出字符。启用该模式,反斜线则成为普通字符。  
  80.   
  81. ·         NO_DIR_IN_CREATE  
  82.   
  83. 创建表时,忽视所有INDEX DIRECTORY和DATA DIRECTORY指令。该选项对从复制服务器有用。  
  84.   
  85. ·         NO_ENGINE_SUBSTITUTION  
  86.   
  87. 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎。  
  88.   
  89. ·         NO_FIELD_OPTIONS  
  90.   
  91. 不要在SHOW CREATE TABLE的输出中打印MySQL专用列选项。该模式在可移植模式(portability mode)下用于mysqldump。  
  92.   
  93. ·         NO_KEY_OPTIONS  
  94.   
  95. 不要在SHOW CREATE TABLE的输出中打印MySQL专用索引选项。该模式在可移植模式(portability mode)下用于mysqldump。  
  96.   
  97. ·         NO_TABLE_OPTIONS  
  98.   
  99. 不要在SHOW CREATE TABLE的输出中打印MySQL专用表选项(例如ENGINE)。该模式在可移植模式(portability mode)下用于mysqldump。  
  100.   
  101. ·         NO_UNSIGNED_SUBTRACTION  
  102.   
  103. 在减运算中,如果某个操作数没有符号,不要将结果标记为UNSIGNED。请注意这样使UNSIGNED BIGINT不能100%用于上下文中。参见12.8节,“Cast函数和操作符”。  
  104.   
  105.    
  106.   
  107. ·         NO_ZERO_DATE  
  108.   
  109. 在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。  
  110.   
  111. ·         NO_ZERO_IN_DATE  
  112.   
  113. 在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。  
  114.   
  115. ·         ONLY_FULL_GROUP_BY  
  116.   
  117. 不要让GROUP BY部分中的查询指向未选择的列。  
  118.   
  119. ·         PIPES_AS_CONCAT  
  120.   
  121. 将||视为字符串连接操作符(+)(同CONCAT()),而不视为OR。  
  122.   
  123. ·         REAL_AS_FLOAT  
  124.   
  125. 将REAL视为FLOAT的同义词,而不是DOUBLE的同义词。  
  126.   
  127. ·         STRICT_TRANS_TABLES  
  128.   
  129. 为所有存储引擎启用严格模式。非法数据值被拒绝。后面有详细说明。  
  130.   
  131. ·         STRICT_TRANS_TABLES  
  132.   
  133. 为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式。后面有详细说明。  
  134.   
  135. 严格模式控制MySQL如何处理非法或丢失的输入值。有几种原因可以使一个值为非法。例如,数据类型错误,不适合列,或超出范围。当新插入的行不包含某列的没有显示定义DEFAULT子句的值,则该值被丢失。  
  136.   
  137. 对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。语句被放弃并滚动。  
  138.   
  139. 对于非事务表,如果插入或更新的第1行出现坏值,两种模式的行为相同。语句被放弃,表保持不变。如果语句插入或修改多行,并且坏值出现在第2或后面的行,结果取决于启用了哪个严格选项:  
  140.   
  141. ·         对于STRICT_ALL_TABLES,MySQL返回错误并忽视剩余的行。但是,在这种情况下,前面的行已经被插入或更新。这说明你可以部分更新,这可能不是你想要的。要避免这点,最好使用单行语句,因为这样可以不更改表即可以放弃。  
  142.   
  143. ·         对于STRICT_TRANS_TABLES,MySQL将非法值转换为最接近该列的合法值并插入调整后的值。如果值丢失,MySQL在列中插入隐式 默认值。在任何情况下,MySQL都会生成警告而不是给出错误并继续执行语句。13.1.5节,“CREATE TABLE语法”描述了隐式默认值。  
  144.   
  145. 严格模式不允许非法日期,例如'2004-04-31'。它不允许禁止日期使用“零”部分,例如'2004-04-00'或“零”日期。要想禁止,应在严格模式基础上,启用NO_ZERO_IN_DATE和NO_ZERO_DATE SQL模式。  
  146.   
  147. 如果你不使用严格模式(即不启用STRICT_TRANS_TABLES或STRICT_ALL_TABLES模式),对于非法或丢失的值,MySQL将插入调整后的值并给出警告。在严格模式,你可以通过INSERT IGNORE或UPDATE IGNORE来实现。参见13.5.4.22节,“SHOW WARNINGS语法”。  
  148.   
  149. 下面的特殊模式快速组合了前面所列的模式。  
  150.   
  151. 其中包括大多数最新版本MySQL中的所有模式值。旧版本中,组合模式不包括新版本中没有的不适用的具体模式值。  
  152.   
  153. ·         ANSI  
  154.   
  155. 等同REAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE。参见1.8.3节,“在ANSI模式下运行MySQL”。  
  156.   
  157. ·         DB2  
  158.   
  159. 等同PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS。  
  160.   
  161. ·         MAXDB  
  162.   
  163. 等同PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、 NO_AUTO_CREATE_USER。  
  164.   
  165. ·         MSSQL  
  166.   
  167. 等同PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、 NO_FIELD_OPTIONS。  
  168.   
  169. ·         MYSQL323  
  170.   
  171. 等同NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE。  
  172.   
  173. ·         MYSQL40  
  174.   
  175. 等同NO_FIELD_OPTIONS、HIGH_NOT_PRECEDENCE。  
  176.   
  177. ·         ORACLE  
  178.   
  179. 等同PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER。  
  180.   
  181. ·         POSTGRESQL  
  182.   
  183. 等同PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS。  
  184.   
  185. ·         TRADITIONAL  
  186.   
  187. 等同STRICT_TRANS_TABLES、STRICT_ALL_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER。  

Tags: mysql, insert, int, datetime

"Content" tab issues NS_ERROR_DOCUMENT_NOT_CACHED on all POST/GET

在用httpfox抓包的时候,发现如标题发生的情况:"Content" tab issues NS_ERROR_DOCUMENT_NOT_CACHED on all POST/GET,
查询了一下,果然在官方的issue中发现了解决方案。再对比了一下我的设置,原来,我将一些Cache都关闭了,怪不得呢。

What steps will reproduce the problem?
1. Get the Firefox 3 Nightly build (tested with Gecko/2008051006)
 2. Run any POST or GET request
3. 
What is the expected output?
What do you see instead?
 expected the "Content" tab to display the responseXML/responseText, it displays "Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)"  What version of the product are you using?
 On what operating system?
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008051006 Minefield/3.0pre 
Please provide any additional information below. hopwe this is an easy fix :)
very sad to have found it to replace bulky Firebug to find out it doesnt work :(.
------
回复如下:
please check the following firefox preferences: (this can be done with the "about:config" url) 
1) browser.cache.disk.enable make sure this is set to "true" (default: true) 
2) browser.cache.memory.enable make sure this is set to "true" (default: true) 
3) network.http.use-cache make sure this is set to "true" (default: true) 
4) browser.cache.disk_cache_ssl setting this to "true" should help getting the content of https requests. it is deactivated by default for security reasons. (default: false) (see http://kb.mozillazine.org/Browser.cache.disk_cache_ssl)

----

OK,问题解决。
http://code.google.com/p/httpfox/issues/detail?id=20

Tags: firefox, httpfox

/*!select*/ 突破防注入

看到本文的时候,其实我还是很蛋定的,大约早在3年多前就看到有人这么做过了,当时还给我发了一大堆这样的代码。
其实还有例子,那就是当初在liba网的时候,有一段时间突然发现MYSQL超慢。bobby查询了所有的数据库查询,发现了类似本文的例子,那时候其实很惊讶,/*!xxxx*/这样的代码不是被注释了吗?又能用来干嘛 ?
所以,今天看到这一篇博客的时候,还是忍不住贴出来,因为这已经真的不算是秘密的秘密了。

来源:http://hi.baidu.com/isbx/blog/item/795dcc112b85f40eb8127b4d.html

作者:meao

昨天在检测一个外国PHP网站时
在id=255后加’出现forbidden
于是我and 1=1正常 and 1=2出错
说明肯定有注入
接着我order by猜出字段
然后union select 1,2,3,4 //悲剧的又出现了forbidden
肯定是做了过滤了
后来构造了语句id=-255+union+/*!select*/+1,2,3,4

原理:

MySQL Server supports some variants of C-style comments. These enable you to write code that includes MySQL extensions, but is still portable, by using comments of the following form:

/*! MySQL-specific code */

In this case, MySQL Server parses and executes the code within the comment as it would any other SQL statement, but other SQL servers will ignore the extensions. For example, MySQL Server recognizes the STRAIGHT_JOIN keyword in the following statement, but other servers will not:

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE …

If you add a version number after the “!” character, the syntax within the comment is executed only if the MySQL version is greater than or equal to the specified version number. The TEMPORARY keyword in the following comment is executed only by servers from MySQL 3.23.02 or higher:

CREATE /*!32302 TEMPORARY */ TABLE t (a INT);

The comment syntax just described applies to how the mysqld server parses SQL statements. The mysql client program also performs some parsing of statements before sending them to the server. (It does this to determine statement boundaries within a multiple-statement input line.)

Tags: select, mysql