本文来自向东的博客:http://www.xiangdong.org/blog/post/1756/
但本人有不同看法。。。
`source` char(255) NOT NULL,
`score` int(11) NOT NULL,
Mysql设置NOT NULL 在pdo插入该字段source为空时候返回false,初看你就奇怪了,为何设置的时候为not null,但是在插入的时候会为null呢?
是这样的,当时开发时候的需求不很明显,但是最后在开发收尾的时候发现这个字段可有可无,而且我们提供的是接口调用,人家就会问了,你这个参数填写什么, 而很有可能就说那个参数啊,可以为空啊,呵呵,这下好了,那个字段刚好可能会出现NULL,和NOT NULL冲突,于是插入数据库出现返回false,而我们又是接口调用,尽量做到给用户返回成功的代码,于是这个插入数据库错误的问题可能会隐藏,最后解 决办法是将数据库source字段改为可以为null!
ALTER TABLE `a` CHANGE `a` `a` INT( 11 ) NOT NULL DEFAULT NULL
ALTER TABLE `a` CHANGE `a` `a` INT( 11 ) NULL DEFAULT NULL
上面这段我还是觉得有问题的,一般情况话,如果设置了NOT NULL,那么default 还是设为0吧。除非你的0在系统中是特殊值。
本文来自向东的博客:http://www.xiangdong.org/blog/post/1756/,有删节
读过由Stephen Covey发现的90/10原理,您的一生或许会有所改变,至少,您对待事情的态度会与以前不一样了。
什么是90/10原理?即在您的一生中,只有10%的事情您无能为力,而90%的事情都在您的把握之中。
我们无法阻止汽车老化出故障,我们无法预料飞机晚点,我们的行程可能被司机耽误在路上,等等,这些都是我们没办法控制的事件。然而剩下90%则不一样了,比如您可能左右不了红灯,却能控制您等车的情绪。请看下面的例子:
您正与家人共进早餐,女儿不小心打翻了咖啡杯,弄脏了您的西服。这是突发事件,您无法阻止它发生,而接下来事情如何发展,则完全取决于您的反应。
您 勃然大怒,严厉地训斥女儿,她大哭起来。训斥完女儿,您转向您的太太,责怪她把咖啡杯放得离桌沿太近,您太太与您发生了争吵。之后您愤然上楼,换了件干净 衣服,下楼时发现女儿仍然在哭,耽误了早餐,也因此错过了校车。太太也要赶时间,所以您要负责送女儿去学校,由于已经迟到,您以40km/h的时速在限速 30km/h的区域飞驰。为此您被罚款60美金并且耽误了额外的15分钟。学校到了,女儿头也不回地径直奔向学校。当您到公司时,已经迟到了20分钟,而 且这时您发现忘了带公文包。接下来的这一天,事情变得越来越糟糕,您期盼着能够早点下班回家。回到家中,您能够明显感觉到女儿和太太对您的疏远。这一切都 是为什么?因为咖啡,女儿,或是警察,还是自己?答案是您自己。
对于打翻的咖啡杯,您无能为力,而接下来那五秒钟的表现,却决定了一天。下面是另外一种情形:
咖 啡杯不小心打翻,弄脏了您的衣服,女儿马上就要哭了,您温柔地说:“孩子,没关系,下次小心一点就好了。”您拿起餐巾稍加擦拭,然后上楼换了件干净衣服。 您提起公文包准时下楼,通过窗户目送女儿上了校车,女儿转身向您挥手再见。您提前五分钟到达公司,并愉快地跟同事们问好。
是不是区别很大?同样的开头,不一样的结局。有些事情您真的无能为力,但是大部分情况,您是可以掌控的。
我 们应该怎么做?如果有人说你坏话,别放在心上,不要让负面评论影响了你的行为。正确的反应,会为你挽回美好的一天,而不适当的表现,可能导致你失去朋友, 丢掉饭碗,或者背负沉重的压力。设想一下开车的你遇到交通堵塞时可能的反应,失去耐心?敲打方向盘(曾经有个朋友把方向盘捶掉了……)?漫骂?血压升高? 谁会在乎你迟到几分钟呢?为什么平静的一天要因此而黯淡?当你被开除了,想想90/10原理吧,为什么要辗转反侧,怒不可遏呢?没有用的,用这些时间和精 力来找新工作吧。飞机晚点,你的行程被延误,为什么要把气撒到飞机上,利用这点时间来学习,来观察一下行人,急躁只会让事情变得更糟。
现 在你知道了什么是90/10原理,把它应用到你的生活当中吧,你会发现效果很神奇,你甚至将不再失去任何东西。千百万的人被问题困扰,被压力和头痛折磨, 我们很需要90/10原理,它会改变你的生活,你需要的只是一点点意志力去执行它。期待回报之前,先看看自己有没有付出,也许付出了得不到回报,但是你仍 然心安理得,因为你的心灵已经打上了爱的烙印。
其实,贴这个文章还有一个用意。不知道大家看过自己的apache的errorlog没,每一次访问,其实浏览器都会查找这个favicon.ico文件,如果没有,就会生成一个404,也就是apache的ErrorLog记录。
而在网页中,一个404会堵塞浏览器的进程挺长时间,所以,在有可能的情况下,还是为自己的网站放上这个文件,一来是为自己的网站做个小广告,二来,也是提高游客的访问速度。
以下是原文:http://blog.goguoguo.com/html/y2009/298.html
作者:土豆
现在很多浏览器都会在地址栏、收藏栏、tab页上面显示一个网站的图标。这个图标就是你站点根目录下的favicon.ico文件。这是浏览器默认的动作,通过抓包工具可以很明显的看到,如tt浏览器,没有缓存的情况下,打开页面的时候就回去get一下/favicon.ico。
当然也可以显示去指定,这样的话可以控制ico图片所在的路径,以及这个图片的格式。在html文件中加入如下的代码就好了:
如何方便的来制作这个网站图标呢,参考如下的一些在线制作的工具,可以省去很大一部分的工作:
国产 制作ico图标 不过生成的ico文件稍微有一点大。
国外 制作ico图标 效果好一些。
更多参考和推荐
车东的博客还带有图片展示的,可以去看个究竟哦。
备注:
1 上传了ico到你的网站的根目录下后,如果通过地址获取的时候提示你保存的话,说明你的服务器不支持这种类型的mime-type,需要修改一下服务器的配置。
如lighttpd,在mime-type配置下,增加:
“.ico” => “image/x-icon”,
还不行的话,打开这个选项:mimetype.use-xattr = “enable”
2 对于很多服务器的设置都没有明显的针对ico类型的文件来设置过期时间的,由于ico文件很少进行变化,需要将其过期时间设置长一点。我的时一年。
lighttpd中修改配置如下:
$HTTP["url"] =~ “\.ico$” {
expire.url = ( “” => “access 1 years” )
}
3 如果你刷新了浏览器还是看不到你的网站图标的话,你需要清空一下浏览器的cache。重启浏览器试一下。
快去试试吧!
原来以为global和$GLOBALS除了写法不一样以为,其他都一样,可是在实际应用中发现,2者的区别还是很大的!
先看下面的例子:
PHP代码
- <?php
-
- function test_global() {
- global $var1, $var2;
- $var2 =& $var1;
- }
- function test_globals() {
- $GLOBALS['var3'] =& $GLOBALS['var1'];
- }
- $var1 = 5;
- $var2 = $var3 = 0;
- test_global();
- print $var2 ."\n";
- test_globals();
- print $var3 ."\n";
- ?>
执行结果为:
0
5
怎么会这样呢?不应该是2个5吗?怎么会出现1个0和1个5呢?
恩,我们保留以上问题,深入分析$GLOBALS和global的原理!
我们都知道变量其实是相应物理内存在代码中的"代号",假设我们上面声明的3个变量分配的内存如下图表示:
引用php手册的$GLOBALS的解释:
Global 变量:$GLOBALS
注意: $GLOBALS 在 PHP 3.0.0 及以后版本中适用。
由所有已定义全局变量组成的数组。变量名就是该数组的索引。
这是一个“superglobal”,或者可以描述为自动全局变量。
也就是说上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是2个不同的变量!
下面来分析global到底做了什么?
我们都知道php中的函数所产生的变量都是函数的私有变量,那么global关键字产生的变量也肯定逃不出这个规则,为什么这么说呢,看下面的代码:
PHP代码
- <?php
-
- function test() {
- global $a;
- unset($a);
- }
-
- $a = 1;
- test();
- print $a;
- ?>
复制代码
执行结果为:
1
为什么会输出1呢?不是已经把$a给unset了吗?unset失灵了?php的bug?
都不是,其实unset起作用了,是把test函数中的$a给unset掉了,可以在函数后面加入
print $a;
复制代码
来测试!也就是说global产生了test函数外部$a的别名变量“$a”,为了和外面的$a区别,我把它成为--test->$a,那么例子1也这么命名的话,可得出下面的图:
[没有图,谢谢,忽悠你的]
接着回到上面的例子1,看test_global中的这一代码“$var2 =& $var1;”,上面是一个引用赋值运算,也就是$var2将指向var1所指向的物理内存地址,所以例子1执行过test_global函数以后,变量的变化由下图可以看出:
[没有图,谢谢,忽悠你的]
而test_globals执行过以后,看变量的变化:
此时,看图,就能理解为什么例子1执行完以后,$var2是0,而$var3是5了!
所以我们得出一个结论,在函数中global和$GLOBALS[]的区别在于:
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一但改变了别名变量的指向地址,就会发生一些意料不到情况,例如例子1.
$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!
文章来自:向东的博客,http://www.xiangdong.org/blog/post/1749/
笔记本系统想重装一下,但,很犹豫。毕竟现在这么多的设置,如果要一一保存,又担心会有遗漏的。
如果不重装,总觉得那丢失的1G内存让我不开心。呵呵。
再加上又没有光驱,其实,重装一次也是很烦恼的事情。所以犹豫啊。
Windows7,windows2008,该装哪个,迷惘中