当前位置: 首页>>技术教程>>正文


php – 未定义函数 mysql_connect()

, , , ,

问题描述

我已经运行了aptitude install php5-mysql(并重新启动了MySQL /Apache 2),但是仍然出现此错误:

Fatal error: Call to undefined function mysql_connect() in /home/validate.php on line 21

phpinfo()表示/etc/php5/apache2/conf.d/pdo_mysql.ini文件已被解析。

最佳方案

好吧,这是你的机会!看来PDO已经准备好;用它代替。

尝试检查是否正在加载PHP MySQL扩展模块:

<?php
    phpinfo();
?>

如果不存在,请将以下内容添加到php.ini文件:

extension=php_mysql.dll

次佳方案

我看到您使用Ubuntu对此进行了标记。很可能未安装MySQL驱动程序(可能还有MySQL)。假设您具有SSH或终端访问权限和sudo权限,请登录服务器并运行以下命令:

sudo apt-get install mysql-server mysql-client php5-mysql

如果已经安装了MySQL软件包或php5-mysql软件包,它将对其进行更新。


更新

由于此答案偶尔仍然会引起单击,因此我将对其进行更新,使其包括PHP7。PHP7需要MySQL的其他程序包,因此您将需要对apt-get命令使用其他参数。

sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql

重要的是,自PHP v5.5.0起不推荐使用mysql_connect()。请参阅此处的官方文档:PHP: mysql_connect()

第三种方案

如果您已经在使用PHP7,则先前已弃用的函数mysql_*被完全删除,因此您应该使用PDO-functions或mysqli_*函数来更新代码。

如果不可能,作为解决方法,我创建了一个小的PHP包含文件,该文件使用mysqli_*()重新创建了旧的mysql_*函数-functions:fix_mysql.inc.php

第四种方案

如果有人来到这里遇到docker php official images的问题,请在docker容器内键入以下命令。

$ docker-php-ext-install mysql mysqli pdo pdo_mysql

有关更多信息,请参阅How to install more PHP extensions部分上方的链接(但对我来说有点难…)。

否则此文档可能会对您有所帮助。

https://docs.docker.com/samples/library/php/

第五种方案

我也遇到了undefined MySQL_connect()的问题。我试图在PHP.ini文件中进行更改,但它给了我同样的错误。然后,我来到了这个解决方案,将代码从折旧的php函数更改为新函数。

$con=mysqli_connect($host,$user,$password);

mysqli_select_db($con,dbname); 
//To select the database

session_start(); //To start the session

$query=mysqli_query($con,your query); 
//made query after establishing connection with database.

我希望这能帮到您 。该解决方案对我来说是正确的。

编辑:

如果您从旧版php升级到apt-get install php7.0-mysql

第六种方案

尝试:

<?php
  phpinfo();
?>

运行页面并搜索mysql。如果未找到,请在 shell 程序中运行以下命令,然后重新启动Apache服务器:

sudo apt-get install mysql-server mysql-client php5-mysql

另外,请确保您在apache2.conf(或conf.d /php.ini)文件中的某处未注释以下所有行,从

;extension=php_mysql.so

extension=php_mysql.so

第七种方案

在php.ini文件中

改变这个

;extension=php_mysql.dll

进入

extension=php_mysql.dll

第八种方案

我的猜测是您的PHP安装未使用MySQL支持进行编译。

检查您的配置命令(php -i | grep mysql)。您应该看到类似'--with-mysql=shared,/usr'的内容。

您可以在http://php.net/manual/en/mysql.installation.php中查看完整的说明。虽然,我宁愿使用@wanovak提出的解决方案。

不过,我认为您需要MySQL支持才能使用PDO。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9830.html,未经允许,请勿转载。