繁体   English   中英

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

[英]Fatal error: Call to undefined function mysql_connect()

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

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

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

您升级到 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_*功能。

如果您在升级到 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

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

sudo apt-get install mysql-server

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

sudo apt-get install php5-mysql

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

PHP.INI

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

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"

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

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

此错误仅适用于您的 PHP 版本 v7.0。 您可以使用 PHP v5.0 else 避免这些

用它

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

我只从 mysql 制作了 mysqli

对于CPanel用户,如果您看到此错误并且您已经为站点选择了 PHP 5.x,则可能有一个CPanel更新禁用了mysqlmysqli PHP 扩展。

要检查和启用扩展:

  1. 转到在CPanel 中选择 PHP 版本
  2. 确保您选择了 PHP 5.x
  3. 确保mysqlmysqli PHP 扩展被选中

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

; Enable mysql extension module

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

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

一个解决方案可能是使用这些适配器函数来开始在整个应用程序中使用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);
    }
}

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

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

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

这是一个快速修复:

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

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

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

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

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

希望这对某人有帮助。

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

检查是否为您的 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

此代码可以帮助您

<?php 

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


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

?>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM