Wierd和恼人的错误:调用未定义的函数mysql

这个问题在这里已经有了答案:

  • 为什么我不应该在PHP中使用mysql_ *函数? 14个答案

  • PHP 7已经摆脱了mysql_query()因为它以各种方式存在问题! API不鼓励好的做法,官方的说法是没有维护,没有准备好的声明!?! 它本质上是PHP中最大的问题,它鼓励了导致sql注入的不良做法,这是一个主要的严重不良情况。

    但是,我确实使用遗留代码库,所以在某些情况下,我必须处理与您相同的情况。 如果你有一个小的代码库,只需更新你的数据库连接方法。 如果你有一个很大的代码库,这是我推荐的:

  • 将此代码库的PHP版本回滚到PHP 5.6,它将会支持一些。
  • 花点时间更新到PDO(您可以创建一个PDO的包装,使其不那么冗长,并且仍然允许准备好的查询)。
  • 忽略mysqli。 如果你需要5分钟从mysql_ *升级,那么你可能会做错了,并且打开sql-injection。 只需去PDO,并开始使用准备好的查询,这样你就可以在晚上睡觉。
  • 如果你仍然想在更现代化的项目中使用PHP 7,那么在它上面加入一个老式的PHP 5.6遗留代码库,以此来实现一个流浪实例。

  • 答案很简单,这个信息早在PHP 7发布之前就已经可用了。它已被删除,并且他们建议转向mysqli或PDO。 有关迁移所需的更改的完整列表,请参阅本指南。


    您的选择:

  • 调整你的代码到mysqli,这是相同的只是有点不同。 这将不需要很长时间来调整您的代码。
  • 切换到PDO,完全不同,但更灵活,并有我的偏好。
  • mysql_*已被删除,这意味着它们将被重新定义。 您可以创建引用MySqli或PDO的包装函数。
  • 切换回PHP的第6版。
  • 它为什么被删除?

  • 它不在发展中。
  • mysql_*函数只提供MySQL真正提供的一部分功能。 (考虑事务,预处理语句,异步查询等)
  • 人们仍在编写( 甚至今天 )这些功能的不安全代码。

  • 我并不是说使用MySqli或PDO会奇迹般地阻止MySQL注入,但至少它们提供了针对这些攻击的本机支持。 其余的由你决定。 程序员,确保将数据指向需要去的地方。

    链接地址: http://www.djcxy.com/p/26583.html

    上一篇: Wierd and Annoying error: Call to undefined function mysql

    下一篇: Uncaught Error: Call to undefined function mysql