该
mysql_query函数的设计使得您必须谨慎地转义要注入到其中的每一个数据,并且,即使您错过了一个数据,整个应用程序也可能会被自动SQL漏洞利用工具破坏。
无论
mysqli这是和PDO支持占位符 要求
,以确保您的查询是从SQL注入漏洞是安全的。调用
mysql_real_escape_string所有内容不仅繁琐,而且容易出错,这就是问题所在。
这些
mysql功能是PHP早期的产物,并且比
mysqli选件或PDO设计提供的面向对象的新功能要受限制得多。
有很多非常好的理由使用这两个新接口之一,但是最重要的是该
mysql_query功能太危险了,无法在生产代码中使用。有了它,您将永远远离一些非常严重的问题而成为一个错误。
充满密码和信用卡号的数据库碎片不断出现是有原因的。拥有明显的SQL注入点使得完全接管站点几乎太容易了。


![PHP:mysql v mysqli v pdo [关闭] PHP:mysql v mysqli v pdo [关闭]](http://www.mshxw.com/aiimages/31/426218.png)
