a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 85|回复: 0

[综合] Oracle辅导:PHP开发者常犯的10个MySQL错误总结

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
数据库是WEB大大都应用开发的基本。如不美观你是用PHP,那么大大都据库用的是MYSQL也是LAMP架构的主要部门。
) ^8 _2 b9 U/ i, t8 D; d3 ?& O! I- B    PHP看起来很简单,一个初学者也可以几个小时内就能起头写函数了。可是成立一个不变、靠得住的数据库确需要时刻和经验。下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考。5 Y  a  Q' B3 @
    1、使用MyISAM而不是InnoDB
% @% ~0 `" n( K& C( b, a    MySQL有良多的数据库引擎,单一般也就用MyISAM和InnoDB。% @# Z  [: }% h. y2 a
    MyISAM是默认使用的。可是除非你是成立一个很是简单的数据库或者只是尝试性的,那么到大大都时辰这个选择是错误的。MyISAM不撑持外键的约束,这是保证数据完整性的精髓地址啊。此外,MyISAM会在添加或者更新数据的时辰将整个表锁住,这在往后的扩展机能上会有很大的问题。3 W) C. d2 Z: X5 X
    解决法子很简单:使用InnoDB。+ @' z- p9 ?( y4 o0 I6 M8 c3 c
    2、使用PHP的mysql体例
' k+ A2 h" M+ [8 e5 F# n    PHP从一路头就供给了MySQL的函数库。良多轨范都依靠于mysql_connect、mysql_query、mysql_fetch_assoc等等,可是PHP手册中建议:
6 [: ~% c, c( Q( z    如不美观你使用的MySQL版本在4.1.3之后,那么强烈建议使用mysqli扩展。3 A; l' o6 q- q. K0 l
    mysqli,或者说MySQL的高级扩展,有一些利益:
8 y0 w2 c* }; P    有面向对象的接口+ h/ _: b( A# r2 e7 A& R
    prepared statements(预措置语句,可以有用防止SQL-注入抨击袭击,还能提高机能)
7 A* _" m# m" {* Q( d    撑持多种语句和事务" i1 u! V" j" V* {% O2 O/ D- t7 w
    此外,如不美观你想撑持大都据库那么应该考虑一下PDO。* j6 l4 R/ J4 P. @1 d4 e( Q0 `
    3、不外滤用户输入, x- Z( ^  C# |) C* `2 ~& l8 F
    应该是:永远别相信用户的输入。用后端的PHP来校验过滤每一条输入的信息,不要相信Javascript。像下面这样的SQL语句很轻易就会被抨击袭击:6 E8 j/ V' J5 j& g6 f+ z
    view sourceprint?. `& B; g0 a/ g) x
    1 $username = $_POST["name"];7 L4 z/ U+ b1 V0 v3 Y% H
    2 $password = $_POST["password"];
* c& W+ z6 n7 M. H* \! c0 a( B    3 $sql = "SELECT userid FROM usertable WHERE username=?$username?AND password=?$password?;"; // run query...3 j, @2 M+ v. J* j0 F% P, q& L; }" _* ]
    这样的代码,如不美观用户输入"admin';"那么,就相当于下面这条了:
1 m" N6 x9 W; L; s+ T% f9 ~    view sourceprint?+ Y( q1 M2 {% W3 Y" A
    1 SELECT userid FROM usertable WHERE username=?admin?;0 @$ E0 G" g. K" s' g5 a, u
    这样入侵者就能不输入密码,就经由过程admin身份登录了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-14 21:40 , Processed in 0.265891 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表