php程序员最常犯的11个MySQL错误

2024-11-05

php程序员最常犯的11个MySQL错误(通用4篇)

php程序员最常犯的11个MySQL错误 篇1

中国IT职业教育领先品牌

精品课程 全程面授

php程序员最常犯的11个MySQL错误

千锋PHP培训简历制作课,意在针对人事审核简历的几个关键点,告诉学员具体关键点怎么写,不同关键点,对应的面试机会。今天将为大家介绍一下11个MySQL常犯的错误。

对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。

对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。

1.使用MyISAM而不是InnoDB MySQL有很多数据库引擎,但是你最可能碰到的就是MyISAM和InnoDB。MySQL默认使用的是MyISAM。但是,很多情况下这都是一个很糟糕的选择,除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性是非常重要的,但MyISAM都不支持这些。另外,当有一条记录在插入或者更新时,整个数据表都被锁定了,当使用量增加的时候这会产生非常差的运行效率。

结论很简单:使用InnoDB。2.使用PHP的mysql函数

PHP自产生之日就提供了MySQL库函数(or near as makes no difference)。很多应用仍然在使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数,尽管PHP手册上说:

千锋教育

中国IT职业教育领先品牌

精品课程 全程面授

如果你在使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用mysqli扩展。

mysqli(MySQL 的加强版扩展)有以下几个优点: 可选的面向对象接口

prepared表达式,这有利于阻止SQL注入攻击,还能提高性能 支持更多的表达式和事务处理

另外,如果你想支持多种数据库系统,你还可以考虑PDO。3.没有处理用户输入

这或者可以这样说#1:永远不要相信用户的输入。用服务器端的PHP验证每个字符串,不要寄希望与JavaScript。最简单的SQL注入攻击会利用如下的代码:

$username = $_POST[“name”];$password = $_POST[“password”];$sql = “SELECT userid FROM usertable WHERE username=’$username’ AND password=’$password’;”;// run query…

只要在username字段输入”admin’;–”,这样就会被黑到,相应的SQL语句如下:

SELECT userid FROM usertable WHERE username=’admin’;狡猾的黑客可以以admin登录,他们不需要知道密码,因为密码段被注释掉了。

4.没有使用UTF-8

千锋教育

中国IT职业教育领先品牌

精品课程 全程面授

美国、英国和澳大利亚的我们很少考虑除英语之外的其他语言。我们很得意地完成了自己的”杰作”却发现它们并不能在其他地方正常运行。

UTF-8解决了很多国际化问题。虽然在PHP v6.0之前它还不能很好地被支持,但这并不影响你把MySQL字符集设为UTF-8。

5.相对于SQL,偏爱PHP 如果你接触 MySQL不久,那么你会偏向于使用你已经掌握的语言来解决问题,这样会导致写出一些冗余、低效率的代码。比如,你不会使用MySQL自带的AVG()函数,却会先对记录集中的值求和然后用PHP循环来计算平均值。

此外,请注意PHP循环中的SQL查询。通常来说,执行一个查询比在结果中迭代更有效率。

所以,在分析数据的时候请利用数据库系统的优势,懂一些SQL的知识将大有裨益。

6.没有优化数据库查询

99%的PHP性能问题都是由数据库引起的,仅仅一个糟糕的SQL查询就能让你的web应用彻底瘫痪。MySQL的EXPLAIN statement、Query Profiler,还有很多其他的工具将会帮助你找出这些万恶的SELECT。

7.不能正确使用数据类型

MySQL 提供了诸如numeric、string和date等的数据类型。如果你想存储一个时间,那么使用DATE或者DATETIME类型。如果这个时候用INTEGER或者STRING类型的话,那么将会使得SQL查询非常复杂,前提是你能使用INTEGER或者STRING来定义那个类型。

很多人倾向于擅自自定义一些数据的格式,比如,使用string来存储序列

千锋教育

中国IT职业教育领先品牌

精品课程 全程面授

化的PHP对象。这样的话数据库管理起来可能会变得简单些,但会使得MySQL成为一个糟糕的数据存储而且之后很可能会引起故障。

8.在查询中使用* 永远不要使用*来返回一个数据表所有列的数据。这是懒惰:你应该提取你需要的数据。就算你需要所有字段,你的数据表也不可避免的会产生变化。

9.不使用索引或者过度使用索引

一般性原则是这样的:select语句中的任何一个where子句表示的字段都应该使用索引。

举个例子,假设我们有一个user表,包括numeric ID(主键)和email address。登录的时候,MySQL 必须以一个email为依据查找正确的ID。如果使用了索引的话(这里指email),那么MySQL就能够使用更快的搜索算法来定位email,甚至可以说是即时实现。否则,MySQL就只能顺序地检查每一条记录直到找到正确的email address。

有的人会在每个字段上都添加索引,遗憾的是,执行了INSERT或者UPDATE之后这些索引都需要重新生成,这样就会影响性能。所以,只在需要的时候添加索引。

10.忘记备份

虽然比较罕见,但是数据库还是有崩溃的危险。硬盘有可能损坏,服务器有可能崩溃,web主机提供商有可能会破产!丢失MySQL数据将会是灾难性的,所以请确保你已经使用了自动备份或者已经复制到位。

11.Bonus mistake-不考虑使用其他数据库

对于PHP开发人员来说,MySQL 可能是使用最广泛的数据库系统,但并

千锋教育

中国IT职业教育领先品牌

精品课程 全程面授

不是唯一的选择。PostgreSQL和Firebird是最强有力的竞争者:这个两者都是开源的,而且都没有被公司收购。微软提供了sql server Express,甲骨文提供了10g Express,这两者都是企业级数据库的免费版本。有时候,对于一个较小的web应用或者嵌入式应用,SQLite也不失为一个可行的替代方案。

以上就是为大家介绍的php程序员最常犯的11个MySQL错误,希望能对大家有所帮助。

千锋教育

最常犯的5个化妆错误 篇2

错误一:使用比唇膏颜色深的唇线笔画唇线

曾经不只一次看到某位小姐涂着淡粉色的唇膏,却画着深棕色的唇线!且不说粉色系与棕色系颜色“打架”,单就颜色的深浅搭配效果来看,距离她两米之外就能看到她那令双唇看起来毫无生气的死板的轮廓线!

◆正确的做法:

如果你是那种不化妆就无法出门的美眉,你应当购买与唇膏色彩相搭配的唇线笔。很多品牌都生产能够与唇膏色彩搭配的唇线笔,这些唇线笔既能准确地勾画出唇型,又不会分外张扬,你在购买时可以向柜台销售人员咨询。假如你觉得准备好几种颜色的唇线笔很麻烦,那么你就应当选择“自然色”——即与你双唇的自然色彩尽量接近的唇线笔,这样,不管你使用什么颜色的唇膏,唇线都会很容易地隐藏在唇膏下面。要知道,自然清新的双唇才是最诱人的呀!

错误二:在潮湿的脸上化妆

假如用清水洗脸之后立刻开始化妆,或者是刚抹上化妆水、乳液之后立刻开始化妆,那么粉底、遮瑕膏、腮红等就会附着在潮湿的皮肤上,妆面很快就会“花掉”,而眼线、眼影等也会很快晕开,如果出现这样的问题,你的功课就算是白做了,而且你的脸比没化妆还要槽糕——看上去到处都脏乎乎的!

◆正确的做法:

非常简单,只要“耐心等待10分钟再开始化妆”就能轻松搞定。10分钟足以让你脸上多余的水分蒸发掉,也就不存在以上问题了!

错误三:不恰当地使用阴影色

有位小姐嫌自己颧骨太高,于是在颧骨部位抹了很多棕色阴影粉,结果,她想掩盖的部位却变得更加明显了!虽然在一般状况下,阴影色能产生收缩效果而亮色能产生突出效果,可是“过犹不及”,太深阴影色会使你的脸看上去脏乎乎的,反而把别人的注意力吸引到你本来想遮掩的地方了!

◆正确的做法:

使用阴影色时要恰到好处。站在自然的散射光下,脸面向太阳的方向(可以找一个多云的阴天,脸面向太阳的方向站在室外;也可以在大晴天找一个自然光线充足的地方,但要注意不要让阳光直射到脸上)。拿一面小镜子观察自己。用手遮挡住部分光线,在脸上投射下阴影。观察脸上阴影的颜色,这个颜色就是最自然的阴影色。

涂抹阴影色的时候不要抹得太多,并且注意阴影周围要自然晕开,与周边的皮肤本色或亮色形成自然过渡,不要轮廓分明,否则欠自然,显得很“假”。

错误四:粉底面具

如果你错误地使用了粉底或者使用了错误的粉底,其结果都是:你的脸看上去像是戴着一个“粉底面具”,看上去非常不美观!

◆正确的做法:

选择正确的粉底并正确地使用它。粉底有很多种类,你需要选择哪一种粉底取决于你皮肤的性质以及你的生活方式。干性皮肤的人假如选择了不含油分的粉底,她的脸看上去会很干燥、缺乏光泽、皱纹明显,好像“挂了秋霜的茄子”。而一个职业女性如果选择了条形粉底,她的妆面看上去很可能就太厚了。有位著名的化妆大师说“使用粉底的目的是让你的皮肤看上去像很完美的皮肤而不是像别的什么”,假如产生了“面具效果”,就与最初的目标背道而驰了。如果你实在不知哪种粉底适合你,购买时一定要向有经验、有耐心的化妆品专柜售货员咨询,不要随随便便轻易购买!

错误五:不分场合,浓妆上阵

涂着舞会上使用的鲜艳颜色的口红、睫毛刷得比米老鼠的女朋友还长,这样的浓妆不适宜日常的工作生活。试想,当别人看到你时,首先看到的是你的浓妆,这时,你的妆面唱了主角,而你成了你的妆面的模特,岂不主次颠倒!

◆正确的做法:

美国留学申请最常犯的错误 篇3

1.没有提前计划

虽然学生在开始选择学校,并着手准备实际的申请材料时,申请的过程才算正式开始。但是竞争力的培养是一个细水长流的过程。规划并准备相关的标准化考试,选择合适的课程,参与有意义的课外活动,并充分利用每个暑假,才能逐步提升自己的背景,让自己真正能够脱颖,而非“和很多人都差不多”。

对出国留学感兴趣的国际学生,从进入大学就应该开始为自己接下来的几年进行规划,把学生活动、实习、社会活动的时间都留足,找到一批适合自己的“高精尖”项目,并努力一个个的拿下它们。

2.把所有的精力都放在准备标准化考试上

这个错误主要是植根于世界上某些地区对教育文化理解的不同。对许多人而言,他们所理解的选拔人才的方式,与全面的招生审核理念其实是背道而驰的。有人会问:“如果我比同届同学的托福高5分的话,难道不更应该被录取吗?”也因为考试培训行业的兴盛,全世界的学生都习惯于热情地专注在标准化考试上,但我们的前招生官们在近75%的国际学生案例中发现这股热情太过头了。

国际学生在提升自己竞争力的过程中,需要在申请材料的组织上投入大量时间,至少不能比准备标化考试的时间少。这不是说,国际学生应该花三年的时间来写文书;而是他们需要积极建立与培养和潜在的推荐人之间的联系;有策略性地深入发展自己真正有热情的活动,以及一系列被全球各地的学生们常常忽略的申请问题。

国际学生需要明白,学校要求提交托福或雅思等英语读写能力考试的目的是什么,以及招生办是怎样结合其他数据( Lsat,GPA,申请文书的写作质量)来评估他们能否在全英文的学习环境下游刃有余地学习。在达到某个明确的分数后,就没有必要花大力气去提高这个分数。

标准化考试成绩相当于是你的敲门砖,但不能保证你一定被录取。

3.课外活动流于形式,不重点关注

招生办公室里关于是否录取一个学生的辩论,往往是围绕一个学生的课外活动参与情况展开的。如果有两个候选人考试成绩相似,什么能把他们区别开呢?

答案在于他们在过去几年选择做了什么,他们如何把握和利用这些机会,以及他们如何把做过的事情,以连贯并有说服力的方式,生动形象地描绘给招生官看的。

将申请重点放在有策略地展现自身特质上,以及那些在不同学校里最能吸引决策者的活动上。尽管每所学校之间会有一些微妙的差别,但所有的学校都在寻找,那些能够生动讲述自己故事的学生。如果没有长时间的投入,热情的参与,真心实意的付出,以及取得切实的成就,学生很难写出能打动招生官的个人申请故事。

4.通用申请的活动列表中夸大时间

我们看到非常多的学生填写通用申请表格时,人为地夸大他们所投入的时间。这对招生官来说是十分危险的信号,而且很不诚实。

5.找人写推荐信临时起意

许多招生官对国际学生的推荐信并不十分看重,特别是东亚学生申请材料中的推荐信。那是因为他们不知道这推荐信的可信度有多少,或是因为写作质量太低,或是推荐信并没有对学生的能力或性格给出真知灼见。

与其在推荐信的问题上投机,国际学生应该学会与导师建立长期的关系,和他们一起参与实质性的工作,以及让推荐人明白写推荐信的过程。这些努力将在日后的申请中得到回报,招生官不注意到也难。

6.忽略校外有学分的项目成绩单,或被认为隐藏成绩

如果申请者在其他大学上课并取得学分(交换、跨校双学位),几乎所有的学校都会要求你提交这些课程的成绩单。如果申请者得到成绩单的时间较晚,他们可能会错过申请截止日期,或更糟糕的是,让人以为他们企图隐瞒相关信息。

7.完全基于U.S. News、QS等大学排名选校

各种杂志期刊发布的学校排名,对初步研究了解各所大学是有帮助的。但是,我们常常看到学生决定申请的学校都是排名“前二十”的大学。这样一刀切的做法并不可取,通常会导致不理想的录取结果,而且常常会有学生被录取后才发现学校生活和他们原来想象的并不一样,然后郁郁寡欢。

对每所大学做细致的调查研究,有助于学生量身定制自己的申请,并能让他们以最好的状态。

8. 准备财产证明

在招生中考虑学生财产情况的学校,往往需要国际申请者提供财务文件,来证明他们能够支付就读的学费。尽管很多学校现在允许,在没有收到财务信息的情况下,对国际学生的申请材料进行审阅;但怀疑学生是否有支付能力,在评估过程中仍是有害的。学生应确保自己熟悉每所学校的政策,并严格遵循这些政策以避免出现任何问题。

9.不留意电子邮件

php程序员最常犯的11个MySQL错误 篇4

有感记录

第一章

1.拒绝承担个人责任是一个易犯的错误 管理者担任管理职务日久容易养成官僚作风,遇事变得谨小慎微,把疑难推他人。让下属难堪 抱怨下属能力差 事业无进展 抱怨自己的忙碌 对下属提出问题不予鼓励(虽然不提出解决方法)不信任下属(下属需要在摸索中成长,只要他还没放弃,管理者就该为他提供一个宽松的环境)不能从面对失败 在其他人面前批评下属 不善于听取下属的建议(一个简单的“不”字会让他从此失去创造的信心,管理者的倾听和讨论会使下属认清自己的不足,并有机会得到充实和提高。)

2.面对失败一味辩解

管理者应先责己,后责人,养成习惯后,就会发现下属并不像自己原先想象的那么无能。

3.认错有助于解决问题

具有责任感是对管理者最基本的要求,他可以消除扯皮、推诿现象,提高团队效率。

4.培养为事情结果负责的精神

作为合格的职业经理人,必须能调整自己,勇于面对问题,提供解决方案,既要动脑,又要动手。

5.高层主管的领导责任

建立愿景与共识,建立战略与组织,资源汇集与分配,创建文化和维持;必须有兢兢业业,如履薄冰的精神,并保持高度的警觉性和危机意识。

6.中层主管的领导责任

建立程序与标准,设定目标和计划,激励士气,培育部署;特点是将抽象的目标转化为具体的行动,将期待的目标转化为可管理的活动,必须有清晰的思维、严谨的计划、丰富的创意、贯彻执行的毅力、融洽的人际关系。

第二章 未能启发和引导工作人员

1.重要管理方法的核心思想:分权管理(就是转交责任,让下级有一定的判断和独立处理工作的权力),漫步管理(不埋头在办公室里第一手获知企业流程卡在哪里),结果管理(更多的关注工作意愿和参与责任),目标管理(共同追求要达到的目标,促进团队精神),例外管理(领导只对例外的情况亲自决策,要经常检验决策范围),参与管理,系统管理。

2.主管需要“少不了他们”的感觉:管理者不是把所有权力揽在手上,学会做员工的教练。

3.未能训练员工,提升其绩效:随时、随地、随人、随事地教育人。

第三章 注重结果,忽视思想

1.商业烂漫主义

上一篇:中学生消费状况调查与研究结题报告下一篇:预备党员转正全年总结