50

我已经设置了 PHP、MySQL 和 Apache。localhost()对于 PHP,它运行良好。但是在我下载 MySQL 之后,它会报告:

致命错误:调用未定义函数 mysql_connect()

我怎样才能解决这个问题?

4

17 回答 17

57

您已升级到 PHP 7,现在mysql_connect已弃用。检查你的:

php -version

将其更改mysqli_connect为:

$host = "127.0.0.1";
$username = "root";
$pass = "foobar";
$con = mysqli_connect($host, $username, $pass, "your_database");

如果您正在升级旧版 PHP,那么现在您将面临使用函数升级所有mysql_*函数的任务mysqli_*

于 2016-03-24T23:45:54.953 回答
36

如果您在升级到 PHP 7.0 后收到此错误,那么您使用的是已弃用的库。

mysql_connect — 打开与 MySQL 服务器的连接
警告
此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

更多信息:http: //php.net/manual/en/function.mysql-connect.php

于 2016-03-16T08:25:34.377 回答
35

打开终端并运行以下命令。

sudo apt-get install mysql-server

如果您正在运行 PHP,您还需要为 mysql 5 安装 php 模块:

sudo apt-get install php5-mysql
于 2013-02-14T12:19:14.647 回答
7

验证您的 PHP 安装是否已使用 mysql 支持进行编译。创建一个包含测试网页<?php phpinfo(); exit(); ?>并将其加载到浏览器中。在页面中搜索 MySQL。如果你没有看到它,你需要重新编译 PHP 并支持 MySQL,或者重新安装一个内置它的 PHP 包

于 2012-05-16T09:18:10.950 回答
6
PHP.INI

检查您是否忘记启用以下选项(加载 mysql 等模块):

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
于 2014-04-19T18:14:45.170 回答
6

利用。 <?php $con = mysqli_connect('localhost', 'username', 'password', 'database'); ?>

在 PHP 7 中。您可能在 XAMPP 中有 PHP 7。您现在有两个选择:MySQLi 和 PDO。

于 2018-03-15T08:05:42.110 回答
4

对于CPanel用户,如果您看到此错误并且您已经为站点选择了 PHP 5.x,则可能存在禁用的CPanelmysql更新和mysqliPHP 扩展。

要检查并启用扩展:

  1. CPanel选择 PHP 版本
  2. 确保您选择了 PHP 5.x
  3. 确保mysql检查mysqliPHP 扩展
于 2020-05-20T10:11:24.307 回答
4

此错误仅针对您的 PHP 版本 v7.0。您可以使用 PHP v5.0 来避免这些

用它

mysqli_connect("localhost","root","")

我只用 mysql 制作了 mysqli

于 2017-12-29T04:13:31.580 回答
3

一个解决方案可能是使用这样的适配器函数来开始使用mysqli,而不是mysql在整个应用程序中使用:

if (!function_exists('mysql_connect')) {
    function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
        return mysqli_connect($host, $user, $password, $database, $port, $socket);
    }
}


if (!function_exists('mysql_select_db')) {
    function mysql_select_db($link, $dbname) {
        mysqli_select_db($link, $dbname);
    }
}
于 2017-10-03T12:00:29.387 回答
2

我在 RHEL6 上遇到了同样的问题。原来 /etc/php.d 中的 mysql.ini 文件只有一个模块名,但需要一个完整的路径名。在我的 RHEL6 系统上,有效的条目是:

; Enable mysql extension module

extension=/usr/lib64/php/modules/mysql.so

修改文件后,我重新启动了 apache,一切正常。

于 2015-06-10T17:45:39.657 回答
1

我正在使用 Windows 8,通过更改环境变量解决了这个问题

请按照以下步骤操作:打开我的电脑属性->高级系统设置->环境变量。在“系统变量”下,选择“路径”并单击“编辑”在“变量值”中,添加“C:\php;” 或安装 php 的路径。

单击确定并应用设置并重新启动系统。它应该工作。

于 2013-12-26T07:09:29.617 回答
1

我的解决方案在这里(我只需要从 中删除最后一个斜杠(注意:反斜杠)PHPIniDir 'c:\PHP\'):致命错误:调用未定义函数 mysql_connect() 无法解决

于 2013-09-18T11:57:09.613 回答
1

如果您使用的是 Windows10,PHP 7.2 并尝试连接到 mysql。如果发生此错误

未捕获的错误:调用未定义的函数 mysqli()

执行以下步骤以使其正确。

  1. 转到 PHP 安装文件夹,
  2. 检查 php.ini 文件,(只有 dev、prod 文件存在,然后文件之一为 php.ini 文件)
  3. 查找“extension=mysqli”并删除“;” 在它之前。
  4. 寻找“extension_dir”并提到“ext”目录的路径。
  5. 重新启动应用程序。

希望这对某人有所帮助。

于 2019-10-08T15:52:23.017 回答
1

这是一个快速修复:

所有的专业人士可能会因为这个答案而讨厌我。但是我在服务器上遇到了同样的错误:致命错误:未捕获错误:调用使用 PHP 7 的未定义函数 mysql_connect()。没有时间重写所有 mysql 代码,所以如果有人需要,可以快速临时修复它在 CPANEL 中查找PHP 配置并将该帐户的版本更改为 PHP 5.4 而不是 PHP 7。然后代码工作正常,没有上述错误。

于 2017-08-01T04:16:45.410 回答
0

检查是否为您的 PHP 版本安装了 mysqli 模块

$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini

启用模块

$ sudo phpenmod mysqli
于 2016-04-03T01:03:10.657 回答
0

此代码可以帮助您

<?php 

$servername = "localhost";
$username = "root";
$password = "";


$con = new mysqli($servername, $username, $password);

?>

但更改“服务器名”、“用户名”和“密码”

于 2016-09-02T21:11:14.527 回答
-1

当您mysql_connect在代码行中使用时会出现问题,因此只需将其添加为 in 即可mysqli_connect解决问题。
然后,您还必须在mysqli整个代码行中使用,否则问题会再次出现。
该示例mysql_select_dbmysqli_select_db用于选择数据库。

于 2017-10-11T00:45:59.390 回答