为什么PHP的mysql_函数不推荐使用?

前端之家收集整理的这篇文章主要介绍了为什么PHP的mysql_函数不推荐使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why shouldn’t I use mysql_* functions in PHP?12个
玩魔鬼的提倡一点点,因为我停止使用这些功能前一段时间,但这个问题是真实的,可能是很多的SO用户很重要.

我们都知道以错误的方式使用MysqL_函数可能是非常危险的,它可能会让您的网站容易受到攻击等等,但是正确使用这些功能可以防止sql注入,而且比较新的PDO功能要好.

考虑到这一切,为什么MysqL_函数已被弃用?

MysqL扩展是古老的,自从PHP 2.0开始,15年前发布(!!);这是一个与现代PHP非常不同的野兽,试图摆脱过去的坏习惯. MysqL扩展是一个非常原始的,低级别的MysqL连接器,它缺少很多方便的功能,因此很难以安全的方式正确应用;因此,noobs是不好的.许多开发人员不了解sql注入,而且MysqL API非常脆弱,难以防止它,即使您知道这一点.它充满了全局状态(例如隐式连接传递),这使得很容易编写难以维护的代码.由于它老了,在PHP核心层面维护可能是不合理的.

MysqLi扩展是一个很多新的,并解决了上述所有问题. PDO也是新的,也解决了所有这些问题,加上更多.

由于这些原因*将来会在某个时候删除MysqL扩展名.它在全盛时期做得很好,但却做得很好.时间已经转移,最佳实践已经发展,应用程序变得更加复杂,需要更现代化的API. MysqL正在退出,与它一起生活.

考虑到这一切,没有理由继续使用它,除了惯性.

*这些是我常识的总结原因;对于整个官方的故事,看这里:https://wiki.php.net/rfc/mysql_deprecation

文件的选择报价如下:

The documentation team is discussing the database security situation,
and educating users to move away from the commonly used ext/MysqL
extension is part of this.

Moving away from ext/MysqL is not only about security but also about
having access to all features of the MysqL database.

ext/MysqL is hard to maintain code. It is not not getting new features. Keeping it up to date for working with new versions of libMysqL or MysqLnd versions is work,we probably could spend that time better.

猜你在找的PHP相关文章