Wierd and Annoying error: Call to undefined function mysql_query()
本问题已经有最佳答案,请猛点这里访问。
我已经在这里一个多小时了,我可以连接到我的数据库和所有(不给出任何错误),但当我尝试使用"mysql_query($query);"
1 |
我已经尝试启用:
1 2 | extension=php_mysql.dll extension=php_mysqli.dll |
我补充说:
1 2 | extension_dir ="ext" extension=php_mysql.dll |
在导入列表的末尾。
在我所做的每一个更改之间,我重新启动exampp中的所有进程,并且在我单独尝试的每一个解决方案之后,它仍然会产生这个恼人的错误。
我试过在网上查找,但唯一与我类似的错误是:
1 |
我从来没有遇到过什么问题,从来没有见过。
我之所以在这里问这个问题,是因为我在谷歌搜索结果中遇到了上述问题,而不是我遇到的问题。
如果有人能帮助我,我会很高兴的。我在网上找到的教程显示了与我写的代码完全相同的代码。
php 7已经摆脱了
但是,我确实使用遗留代码库,因此在某些情况下,我必须处理与您相同的情况。如果你有一个小的代码库,只需更新你的数据库连接方法。如果您有一个大的代码库,下面是我的建议:
- 将这个代码库的PHP版本回滚到php 5.6,在2016年它将得到更多的支持。
- 花点时间更新到PDO(您可以创建一个将PDO包装起来,使其不那么冗长,并且仍然允许准备查询)。
- 忽略mysqli。如果从MySQL_u*升级需要5分钟,那么您可能做错了,并将自己留给了SQL注入。只需进行PDO并开始使用准备好的查询,这样您就可以在晚上睡觉了。
- 如果您仍然想在更现代的项目中使用PHP7,请使用旧的PHP5.6遗留代码构建一个容器实例。
答案很简单,这个信息早在PHP7发布之前就已经存在了。它已经被移除,他们建议转移到mysqli或pdo。有关迁移所需了解的更改的完整列表,请参阅本指南。
你的选择:- 将代码调整为mysqli,这是完全相同的,只是有点不同。这不会花很长时间将代码调整为。
- 切换到PDO,完全不同,但更灵活,有我的偏好。
mysql_* 已经被删除,这意味着它们可以被重新定义。您可以创建引用mysqli或pdo的包装函数。- 切换回PHP版本6。
为什么要移除?
- 它没有在开发中。
mysql_* 函数只提供了MySQL真正提供的一部分功能。(考虑事务、准备好的语句、异步查询等)- 人们仍然在用这些函数编写(甚至今天)不安全的代码。
我不是说使用mysql i或pdo可以神奇地防止mysql注入,但至少它们提供了针对这些攻击的本地支持。剩下的由你自己决定;程序员,以确保把数据指向它需要去的地方。