Call to undefined function mysql_connect() 解决方法汇总

  • 2021-02-23 21:14
  • by 刘管家
  • 14854
  • 0
  • 0
  • php,mysql

  

方式一:

在PHP代码中使用phpinfo()函数查看PHP基本信息

从PHP5.0开始mysql_connect()就不推荐使用了,到PHP7.0就直接被废弃了,如果PHP为7.0及以上版本的话用mysqli_connect()代替

方式二:

安装的php缺少mysql模块导致

CentOs安装mysql模块:

yum install php-mysql -y

如果安装了之后报下面的警告

Headers and client library minor version mismatch. Headers:

这是由于高版本的MySQL,低版本的MySQL Client API引起的

这时候可以先卸载刚才的php-mysql

yum remove php-mysql -y

然后

yum install php-mysqlnd -y

最后重启apache

systemctl restart httpd

Ubuntu安装mysql模块:

apt-get install php5-mysql

sudo dpkg-reconfigure php5-mysql

sudo /etc/init.d/mysql restart

方式三:

如果前两种方法都不能解决,试着在php.ini配置文件中打开mysql模块的扩展

php.ini文件中查找 ;extension=“有关的mysql模块” 把前面的;去掉

然后确保extension的dir指向的是扩展存放的目录

windows一般在ext下面,centos在/usr/lib64/php/modules下面

以上信息都可以在phpinfo打印出的信息查找到

不过我遇到这个问题的时候,只需要安装php-mysql模块就好了,并不需要修改php.ini

方法四:

通过自行写函数让php7+可以使用mysql_connect();

if(!function_exists('mysql_connect')){
    function mysql_connect($dbhost, $dbuser, $dbpass){
        global $dbport;
        global $dbname;
        global $mysqli;
        $mysqli = mysqli_connect("$dbhost:$dbport", $dbuser, $dbpass, $dbname);
        return $mysqli;
        }
    function mysql_select_db($dbname){
        global $mysqli;
        return mysqli_select_db($mysqli,$dbname);
        }
    function mysql_fetch_array($result){
        return mysqli_fetch_array($result);
        }
    function mysql_fetch_assoc($result){
        return mysqli_fetch_assoc($result);
        }
    function mysql_fetch_row($result){
        return mysqli_fetch_row($result);
        }
    function mysql_query($query){
        global $mysqli;
        return mysqli_query($mysqli,$query);
        }
    function mysql_escape_string($data){
        global $mysqli;
        return mysqli_real_escape_string($mysqli, $data);
        }
    function mysql_real_escape_string($data){
        return mysql_real_escape_string($data);
        }
    function mysql_close(){
        global $mysqli;
        return mysqli_close($mysqli);
        }
}




评论