为什么我不应该在 PHP 中使用 mysql_* 函数?

2023-11-23

不应该使用的技术原因是什么mysql_*功能? (例如。mysql_query(), mysql_connect() or mysql_real_escape_string())?

即使其他东西可以在我的网站上运行,为什么我应该使用其他东西?

如果它们在我的网站上不起作用,为什么我会收到类似错误

警告:mysql_connect():没有这样的文件或目录


MySQL 扩展:

  • 未在积极开发中
  • Is 正式已弃用自 PHP 5.5(2013 年 6 月发布)起。
  • Has been removed entirely as of PHP 7.0 (released December 2015)
    • 这意味着截至2018 年 12 月 31 日它不存在于任何受支持的 PHP 版本中。如果您使用的 PHP 版本支持它,那么您使用的版本没有修复安全问题。
  • 缺乏 OO 接口
  • Doesn't support:
    • 非阻塞、异步查询
    • 准备好的报表或参数化查询
    • 存储过程
    • 多重陈述
    • 交易
    • “新”密码验证方法(MySQL 5.6 中默认启用;5.7 中必需)
    • MySQL 5.1 或更高版本中的任何新功能

由于它已被弃用,因此使用它会使您的代码缺乏面向未来的能力。

缺乏对准备好的语句的支持尤其重要,因为与通过单独的函数调用手动转义外部数据相比,它们提供了更清晰、更不易出错的转义和引用外部数据的方法。

See SQL扩展的比较.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我不应该在 PHP 中使用 mysql_* 函数? 的相关文章