调用未定义的函数 mysql_pconnect()

Call to undefined function mysql_pconnect()

提问人:Martyn 提问时间:11/6/2023 更新时间:11/6/2023 访问量:36

问:

我正在运行一个旧应用程序,我正在尝试在 docker 容器中运行。

我收到以下错误:

调用未定义的函数 mysql_pconnect()

据我了解,我应该能够启用MySQL扩展(因为我运行的是PHP 5.6):

apt-get install php5-mysql

但我看到了以下内容:

# apt-get install php5-mysql 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php5-mysql

我知道这是一个已弃用的功能,并在 PHP 7 中删除。但是,我想让应用程序在开发环境中正常工作,以便我们可以对其进行一些增强。此后,我们将对其进行所需的升级,但需要尽快完成一些修复。

以下是运行的 Linux 版本:

# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"

docker 容器似乎支持 mysqlnd(?),但不支持 MySQL 和 MySQLi - 我通过运行 phpinfo() 来确认这一点。实时服务器同时存在 MySQL 和 MySQLi。服务器可能是很久以前设置的。

PHP 的 php-5.6

评论

0赞 Paul T. 11/6/2023
不再支持基于旧版本的函数。需要将所有这些函数转换为等效函数(注意),或者更好的是,改用 PDO。转换为 并不太痛苦,但要知道某些函数参数在 中处于不同的顺序。mysql_*mysqli_*imysqlimysqli
0赞 Martyn 11/6/2023
谢谢。我该如何安装它?我试过了,但它什么也没回来。我试过了,但同样没有发现错误。apt-cache search mysqlapt-get install php5-mysqliapt-get install php-mysqli
0赞 Paul T. 11/6/2023
我不确定如何/在哪里可以找到较旧的软件包,如果在任何地方都可以使用。
0赞 Álvaro González 11/6/2023
我正在浏览 Debian 网站,似乎他们已经从旧版本中停用了大量资源。可能是旧的存储库不见了。在最坏的情况下,您需要从源代码编译 PHP(只要您的 Linux 映像具有适当的构建工具)。

答: 暂无答案