您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysql扩展名已弃用,以后将删除:使用mysqli或PDO代替[重复]

mysql扩展名已弃用,以后将删除:使用mysqli或PDO代替[重复]

为什么会这样呢?

整个ext/MysqLPHP扩展,它提供了与前缀命名的所有功能MysqL_,是在PHP V5.5.0正式弃用,并在PHP V7删除

它最初是在MysqL v3.20的PHP v2.0(1997年11月)中引入的,自2006年以来未添加任何新功能加上缺少新功能,在复杂的安全漏洞中难以维护此类旧代码

自2011年6月起,该手册已包含警告,禁止其在新代码中使用。

我该如何解决

错误消息所示,您还可以考虑使用其他两个MysqL扩展:MySQLiPDO_MySQL,可以使用其中任何一个代替ext/MysqL。自v5.0以来,这两个版本都已成为PHP核心,因此,如果您使用的版本会引发这些弃用错误,则几乎可以肯定地立即就开始使用它们- 即无需任何安装工作。

它们之间略有不同,但与旧扩展相比,提供了许多优势,包括对事务的API支持,存储过程和准备好的语句(从而提供克服SQL注入攻击的最佳方法)。PHP开发人员Ulf Wendel 对功能进行了详尽的比较

HashPHP.org提供了有关从迁移ext/mysql到PDO出色教程

据我所知,它通过设置是可以抑制弃用错误error_reportingPHP.ini排除E_DEPRECATED

>     error_reporting = E_ALL ^ E_DEPRECATED

如果我这样做会怎样?

是的,可以抑制此类错误消息,并ext/MysqL暂时继续使用旧的扩展名。但是, -这是开发人员的最后警告,即该扩展可能不会与将来的PHP捆绑在一起(实际上,如前所述,它已从PHP v7中删除)。相反,你应该利用这个机会将应用程序迁移,现在 ,这是为时已晚。

还要注意,该技术将禁止 所有E_DEPRECATED消息,而不仅仅是与ext/MysqL扩展有关的消息:因此,您可能没有意识到即将对PHP进行的其他更改,这些更改会影响您的应用程序代码。当然,可以通过使用PHP错误控制运算符(即在相关行之前添加)仅抑制出现问题的表达式上的错误@但是这将抑制该表达式引发的所有 错误,而不仅仅是错误E_DEPRECATED

MySQL 2022/1/1 18:22:17 有419人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶