对于大多数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手册上说:如果你在使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用mysqli扩展。 mysqli(MySQL的加强版扩展)有以下几个优点:可选的面向对象接口prepared表达式,这有利于阻止SQL注入攻击,还能提高性能支持更多的表达式和事务处理另外,如果你想支持多种数据库系统,你还可以考虑PDO. 3、没有处理用户输入这或者可以这样说#1:永远不要相信用户的输入。用服务器端的PHP验证每个字符串,不要寄希望与JavaScript.最简单的SQL注入攻击会利用如下的代码:$username =
PHP程序员最常犯的11个MySQL错误_网学