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

标签 php mysql

想要改进这篇文章?提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。








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

即使它们在我的网站上工作,我为什么还要使用其他东西?

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

Warning: mysql_connect(): No such file or directory

最佳答案

MySQL 扩展:

  • 未在积极开发中
  • 官方deprecated 自 PHP 5.5 起(2013 年 6 月发布)。
  • removed完全 自 PHP 7.0 起(2015 年 12 月发布)
  • 这意味着从 31 Dec 2018它不存在于任何受支持的 PHP 版本中。如果您使用的是支持它的 PHP 版本,那么您使用的是没有修复安全问题的版本。
  • 缺少 OO 接口(interface)
  • 不支持:
  • 非阻塞、异步查询
  • Prepared statements或参数化查询
  • 存储过程
  • 多条语句
  • 交易
  • "new"密码验证方法(在 MySQL 5.6 中默认开启;在 5.7 中需要)
  • MySQL 5.1 或更高版本中的任何新功能

  • 由于它已被弃用,因此使用它会使您的代码不那么面向 future 。

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

    the comparison of SQL extensions .

    关于php - 为什么我不应该在 PHP 中使用 mysql_* 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42092886/

    相关文章:

    php - Laravel 数据表不返回 html 链接

    php - 我怎样才能在循环外获取foreach循环变量

    php - MYSQL 查询,因此如果其他表中没有值,它也会返回值

    php - 在 php 应用程序中存储 AES 加密 key 的最佳方法是什么?

    php - 返回数组数组 nusoap php web 服务

    php - 如何有条件地运行 for 循环,省略某些值,PHP

    mysql - 计算列(重量/最大(重量)

    php - Laravel Group By 和每个分组行的求和

    php - 使用 dev>null & 运行 exec() 命令不起作用,但 dev>null 可以

    javascript - AJAX 将数据发送到 PHP 文件,但 PHP 无法从 $_POST 获取数据