我正在尝试在PHP 5.4中使用新的开发服务器。它运行phpinfo()
很好,但在我的站点代码和phpMyAdmin.php
上,他们抛出了以下错误:
调用未定义的函数mysql_connect()
它们正在通过localhost:8000 运行
php -m
显示mysqlnd已加载,但这可能还不够。
操作系统是Windows 7
有什么想法吗?
mysqlnd
是自PHP 5.3以来可以由3个PHP扩展使用的库,而不是libmysql
:
-
mysql
提供mysql_*
功能 -
mysqli
提供mysqli_*
函数 - 和
pdo_mysql
,允许将PDO与MySQL数据库一起使用
mysqlnd
本身不导出任何可以从PHP脚本中使用的函数:它只提供了与这3个扩展的MySQL连接,这3个是导出可以使用的函数的扩展。
如果您想使用mysql_*
函数,您必须确保启用了mysql
扩展,并且在PHP:解析的.ini
文件之一中可能会出现这样的情况
extension=mysql.dll
附带说明:mysql_*
函数不应该再使用了,尤其是对于新项目:mysql
扩展很旧,不允许使用MySQL最近的功能(实际上,已经不是那么新了)。
相反,您应该使用mysqli或PDO。
这是因为register_globals自PHP5.4起不再包含,在早期版本中它已被弃用,您可以强制使用它。原因是它会给黑客留下巨大的安全漏洞。
尝试安装缺少的mysql模块
sudo apt install php-mysqli
检查安装后是否在php.ini中设置了extension=mysql.so