当前位置: 首页 > 面试题库 >

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

朱翔
2023-03-14
问题内容

想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。

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

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

如果它们在我的网站上不起作用,为什么会出现类似

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


问题答案:

MySQL扩展:

  • 没有积极发展
  • 正式 弃用的PHP 5.5(发布2013年6月)。
  • 自PHP 7.0(2015年12月发布) 起 已 完全删除。
    • 这意味着截至2018年12月31日,任何受支持的PHP版本中都不存在该文件。如果使用的PHP版本支持该版本,则使用的版本不会解决安全问题。
  • 缺乏OO接口
  • 不支持:
    • 非阻塞异步查询
    • 预备语句 或参数化查询
    • 储存程序
    • 多条陈述
    • 交易次数
    • “新”密码身份验证方法(MySQL 5.6中默认为启用; 5.7中为必需)
    • MySQL 5.1或更高版本中的任何新功能

由于不建议使用,因此使用它会使您的代码不再受将来的考验。

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

请参见 SQL扩展的比较



 类似资料:
  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 为什么不应该使用功能的技术原因是什么?(例如,或)? 即使我的网站上可以工作,我为什么还要使用其他东西? 如果它们在我的网站上不起作用,为什么会出现类似 警告:mysql_connect():没有这样的文件或目录 问题答案: MySQL扩展: 没有积极发展 被 正式 弃用

  • 问题内容: 这个问题已经在这里有了答案 : 为什么我不应该在PHP中使用mysql_ *函数? (15个答案) 6年前关闭。 不久前我停止使用这些功能时,在这里扮演了Devil’s Advocate的角色,但问题是真实的,可能对许多SO用户来说很重要。 我们都知道以错误的方式使用功能可能非常危险,可能使您的网站容易受到攻击等。但是正确使用这些功能可以防止SQL注入,并且实际上比新的PDO功能要快一

  • 我们都知道以错误的方式使用函数可能会非常危险,它会使您的网站易受攻击,等等。但是正确使用这些函数可以防止SQL注入,并且实际上比更新的PDO函数更快一些。 考虑到所有这些,为什么函数不推荐使用呢?

  • 问题内容: 使用PHP发送电子邮件时,普遍的看法是不要使用PHP的内置功能,而应使用库。 我想知道的是在库或扩展中使用的实际原因和缺陷。例如,通常指定的标头不包含在标准调用中。 问题答案: 报价: PHP 功能的缺点 在某些情况下,尽管通过WB发送而没有任何错误消息,但是通过PHP发送的邮件没有收到收件人。下面列出了该问题的最常见原因。 邮件标题或内容的格式错误(例如Windows / Unix之

  • 问题内容: 之间有什么区别: 和 我知道JPanel是GUI组件的容器,但我确实看不到使用它的实用程序。当然,我错了,但我是从Swing开始的,所以…为什么我应该使用JPanel?真正的目的是什么? 问题答案: 为什么我应该使用JPanel? 您可以使用JPanel获得以下一项或多项好处: 将组件分组在一起。 为了更好地组织您的组件。 为了使我们能够使用 多种布局 并组合其效果。(例如,用于数字键

  • 问题内容: 当我读一本Java书籍时,作者曾说过,在设计类时,与继承一起使用通常是不安全的。例如: 在上面的类中,我们应放置,以便其他类不能从此继承。我的问题是,为什么允许另一个类从中继承是不安全的? 问题答案: 因为很难(不可能?)做到正确,尤其是 对称 属性 。 说你有一堂课。产生如果参数也是并且具有相同的重量。如果要实现,则仅当参数也是汽车(重量除外)时,它才应屈服,并且还应比较制造商,发动