MySQL Fatal error: Call to undefined function mysql_connect()

MySQL Fatal error: Call to undefined function mysql_connect()

最近开发者在使用PHP进行MySQL数据库连接时,有时会遇到一个问题:Fatal error: Call to undefined function mysql_connect(),并且这个错误信息可能出现在PHP版本升级后或PHP的MySQL扩展未正确加载的情况下。这个错误提示表明了mysql_connect() 函数无法使用或被找到,在本文中我们将会学习如何解决这个问题。

阅读更多:MySQL 教程

解决方法1:安装MySQL扩展

在PHP中,使用MySQL进行数据库连接需要加载MySQL扩展。如果PHP的MySQL扩展未被正确加载,那么mysql_connect() 函数就会无法使用或被找到。

要解决这个问题,我们需要检查PHP配置文件php.ini里是否正确地启用了MySQL扩展。我们可以搜索php.ini中是否有关于MySQL扩展的以下这一行配置:

extension=php_mysql.dll

如果没有这一行,我们需要在php.ini文件中添加这一行,然后保存文件并重新启动Apache或Nginx服务器。

若 PHP 是运行在 UNIX/Linux 操作系统上,则需要使用 mysqli 或者 PDO_MySQL 扩展,而不是使用 MySQL 扩展库。

解决方法2:更新PHP版本或安装MySQLi扩展

MySQL扩展从PHP7.0开始已经被弃用,因此PHP7.0以上版本中无法使用mysql_connect() 函数。一个有效的解决方法是在PHP7.0及以上版本安装 MySQLi或PDO扩展来替代mysql扩展。

MySQLi是一个面向对象的接口,允许开发者使用面向对象的方式来连接MySQL。开发者可以使用以下命令安装MySQLi扩展:

sudo apt-get install php7.4-mysql

或者

sudo apt-get install php-mysql

解决方法3:检查MySQL服务是否正常开启

如果MySQL服务未正确开启,mysql_connect() 函数就会无法使用或被找到。我们需要检查MySQL服务是否正常工作。有几种方式可以检测MySQL是否正常提供服务:

  1. 检查MySQL服务状态
systemctl status mysql.service

如果MySQL服务正在运行,将会显示active状态。

  1. 检查MySQL服务端口号是否开放

MySQL服务默认端口为3306,我们可以使用以下命令检查端口是否开放:

netstat -an | grep 3306

如果MySQL服务端口是开放的,我们应该看到一条类似于”tcp6 0 0 :::3306 :::* LISTEN”的结果。

总结

当我们在开发过程中遇到Fatal error: Call to undefined function mysql_connect()时,我们可以针对不同的原因采取不同的解决方法。我们可以通过安装MySQL扩展、更新PHP版本或安装MySQLi扩展,以及检查MySQL服务是否正常开启来解决这个问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程