百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 必看!PHP开发者常犯的10个MySQL差错
分享文章到:

必看!PHP开发者常犯的10个MySQL差错

发布时间:09/01 来源:未知 浏览: 关键词:
本文精心整理了PHP开发中,运用MySQL数据库常见的、容易犯的10个差错,欢送大家学习!

1、运用MyISAM而不是InnoDB

MySQL有许多的数据库引擎,单个别也就用MyISAM和InnoDB。

MyISAM是默许运用的。但是除非你是创立一个非常简略的数据库或者只是实验性的,那么到大多数时候这个选中是差错的。

MyISAM不支撑外键的束缚,这是保障数据完备性的英华所在啊。别的,MyISAM会在增加或者更新数据的时候将整个表锁住,这在

今后的扩展机能上会有很大的题目。

解决方法很简略:运用InnoDB。不外这里我个别都试用了MyISAM

2、运用PHP的mysql办法

PHP从一开端就供给了MySQL的函数库。许多程序都依赖于mysql_connect、mysql_query、mysql_fetch_assoc等等,但是PHP手

册中倡议:

要是你运用的MySQL版本在4.1.3之后,那么热烈倡议运用mysqli扩展。

mysqli,或者说MySQL的高级扩展,有一些长处:

有面向对象的接口

prepared statements(预处置语句,可以有效防止SQL-注入袭击,还能提高机能)

支撑多种语句和事务

别的,要是你想支撑多数据库那么应当考虑一下PDO。

3、不外滤会员输入

应当是:永远别信赖会员的输入。用后端的PHP来校验过滤每一条输入的信息,不要信赖Javascript。像下面这样的SQL语句很容易就会被袭击:

$username = $_POST["name"];  
$password = $_POST["password"];  
$sql = "SELECT userid FROM usertable WHERE username='$username'AND password='$password';"; // run query...

这样的代码,要是会员输入”admin’;”那么,就相当于下面这条了:

SELECT userid FROM usertable WHERE username='admin';

这样入侵者就能不输入密码,就通过admin身份登录了。

4、不运用UTF-8

那些英老美家的会员,很少考虑说话的题目,这样就造成许多产品就不克不及在其他地方通用。还有一些GBK编码的,也会有许多的费事。

UTF-8解决了许多国际化的题目。虽然PHP6才干比拼完善的解决这个题目,但是也无妨碍你将MySQL的字符集设定为UTF-8。

5、该用SQL的地方运用PHP

要是你刚接触MySQL,有时候解决题目的时候可能会先考虑运用你熟知的说话来解决。这样就可能造成一些浪费和机能比拼差的情

况。比方:盘算均匀值的时候不适用MySQL原生的AVG()办法,而是用PHP将所有值轮回一遍然后累加盘算均匀值。

别的还要注意SQL查询中的PHP轮回。平常,在取得所有效果之后再用PHP来轮回的效率更高。

个别在处置批量数据的时候运用强有力的数据库办法,更能提高效率。

6、不优化查询

99%的PHP机能题目都是数据库造成的,一条糟糕的SQL语句可能让你的整个程序都非常慢。MySQL的EXPLAIN statement,Query

Profiler,many other tools的这些工具可以帮你寻出那些俏皮的SELECT。

7、运用差错的数据类型

MySQL供给一系列数字、字符串、工夫等的数据类型。要是你想存储日期,那么就是用DATE或者DATETIME类型,运用整形或者字

符串会让事情更加复杂。

有时候你想用本人定义的数据类型,例如,运用字符串存储序列化的PHP对象。数据库的增加可能很容易,但是这样的话,MySQL就

会变得很笨重,并且今后可能致使一些题目。

8、在SELECT查询中运用*

不要运用*在表中返回所有的字段,这会非常的慢。你只需要掏出你需要的数据字段。要是你需要掏出所有的字段,那么可能你的表需

要更改了。

9、索引不够或者过度索引

个别来说,应当索引涌现在SELECT语句中WHERE背面所有的字段。

例如,假设我们的会员表有一个数字的ID(主键)和email地址。登录之后,MySQL应当通过email寻到响应的ID。通过索引,MySQL可

以通过搜寻算法很快的定位email。要是没有索引,MySQL就需要检查每一项记载直到寻到。

这样的话,你可能想给每一个字段都增加索引,但是这样做的后果就是在你更新或者增加的时候,索引就会从新做一遍,当数据量大

的时候,就会有机能题目。所以,只在需要的字段做索引。

10、不备份

或许不常产生,但是数据库损毁,硬盘坏了、办事休止等等,这些都会对数据造成苦难性的毁坏。所以你一定要确保主动备份数据或

者保留副本。

以上就是必看!PHP开发者常犯的10个MySQL差错的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有154人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板