周淼(MillsonZhou)的个人博客,记录、收藏、分享

态度决定一切 细节决定成败

今天在写代码的过程中犯了一个错误,更新的sql语句,没有加where条件就直接测试了,结果数据库里该字段全部被修改

万幸的是,是测试机上的数据库,不然可能就要因为我而召开一次会议了

以前已经有过类似的情况,去年刚实习的时候,同期进来的一个同学,写了个联表查询,把服务器数据库直接搞挂掉了,也是因为没加where限制条件,因为是实习,所以没有深究,后来公司就决定每个组都要有测试机

再后来,一个同事写if判断语句时,本来比较应该写==的,结果少写了一个等号,变成赋值语句了,最后的结果很严重,因为涉及到后台,用户的数据被一个人给拿过去了,不知道是不是竞争对手,后来也不知道怎么解决的,这个同事就这样被开掉了,据说因为已经有过类似的错误了

这些明明都是些很简单的问题,只要稍微上点心就能给避免的错误,为什么还是会犯呢,我觉得是态度问题

拿我自己来说,一是因为是测试机,二是觉得这么简单的东西肯定不会出错,所以不需要检查,直接测试应该没问题,写的时候脑子里已经过了一遍了

就是因为这样的态度,才造成严重的后果,即使你再牛B,也不能保证绝对不会出问题吧,既然这样,就必须认真仔细的写每一行代码,不能因为熟就不放在心上,真的产生错误造成损失的时候你就傻眼了

态度决定一切,细节决定成败,这是高中班主任送给我们的一句话,与大家共勉

typecho从sqlite转为mysql

折腾了半天,终于还是把sqlite转成了mysql,因为平时使用的都是mysql,还是不花时间去搞sqlite了,毕竟两者还是有一定的区别的。
本想写个插件,后来想想算了,有此需求的人太少,并且我的日志数还比较少,靠人工可以转换。
先下了个sqlite developer,把数据库.db文件导出为.sql文件,与mysql导出的格式有一点小区别,如

1
2
mysql:
INSERT INTO `typecho_relationships` (`cid`, `mid`) VALUES ('1','1')

1
2
sqlite:
INSERT INTO [typecho_relationships] ([cid], [mid]) VALUES ("1","1")

把该替换的都替换了,结果还是出现了两个问题:
1.typecho_contents表里的slug字段是唯一的,但是我有两个图片名都是1.jpg,然后slug字段值也都是1-jpg,结果就报错了,按理说应该不会出现这样的问题的,难道这也是sqlite与mysql的区别?
2.typecho_options表里的routingTable对应的value字段的值可能太大了,所以sqlite developer导出的时候没导全还是其他什么问题,总之这一条数据插入也报错,后来的解决方法是从install.php文件中直接复制的初始数据

返回顶部