您现在的位置:首页 > 帮助中心 > 程序编程 > 如何快速的让PHP 7.0支持MYSQL的函数?

如何快速的让PHP 7.0支持MYSQL的函数?

来源:中国U网 日期:2018-10-17 类别:程序编程 点击:182
相对于PHP5,PHP7对语法做了比较大的改动,尤其是对数据库操作方面,废弃了最常用的MYSQL的操作函数,改用MYSQLI或者PDO MYSQL的方式。

PHP更新的真快,想想开始学习的时候才出PHP4,一直用到PHP5,PHP6还没用,就到了PHP7。相对于之前的版本,PHP7对语法做了比较大的改动,尤其是对数据库操作方面,废弃了最常用的mysql的所有操作函数,改用MYSQLI或者PDO MYSQL的方式,导致很多原来的程序无法运行,但是我们又不能所有程序都重新开发一遍,那样工作量太大,只能想办法来解决。

1、通过安装MYSQL扩展来解决(不推荐)

从php网站上下载mysql扩展,地址:http://git.php.net/?p=pecl/database/mysql.git;a=summary , 找到里面的 Fixed support for master changes,下载下来

解压并使用phpize工具初始化:

#解压   
tar xzvf mysql-45881bd.tar.gz   
#进入mysql扩展目录
cd mysql-45881bd/    
#使用phpize初始化,我的phpize在/opt/目录   
/opt/php/bin/phpize   
#编译mysql扩展,使用mysql native driver作为mysql链接库   
./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd   
make && make install  
编辑php.ini文件,把mysql.so拷贝到php.ini的extension_dir中,然后在php.ini中加入extension=mysql.so
 
然后重启PHP,或者httpd
 
2、通过函数方式(推荐)
 
主要就是把原来的MYSQL的内置函数作为外部函数使用,用mysqli的方式重新写一遍。如下:
 
if(function_exists('mysql_pconnect')){
function dbconnect(){
global $dbhost,$dbname,$dbuser,$dbpass;
mysql_connect($dbhost,$dbuser,$dbpass) or die("连接数据库出错!");
mysql_select_db($dbname) or die("选择数据库出错!");
}
dbconnect();
} else {
    $mysqli = mysqli_connect("$dbhost:$dbport", $dbuser, $dbpass, $dbname);
    function mysql_pconnect($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);
        //return addslashes(trim($data));
    }
    function mysql_real_escape_string($data){
        return mysql_real_escape_string($data);
    }
    function mysql_close(){
        global $mysqli;
        return mysqli_close($mysqli);
    }
}
 

需要根据函数的情况提前定义数据库的连接地址、用户名、密码、数据库名,端口等。


关键词:PHP 7, MYSQL函数,MYSQL扩展
如何快速的让PHP 7.0支持MYSQL的函数?为中国U网原创文章,在不经过允许的情况下,禁止用于商业用途或随意转载,转载请注明出处,并加上本页链接地址:
http://www.cuwww.com/help/detail-87.html
版权所有 中国U网 侵权必究 免责声明 互联网不良信息举报
旺旺:点击这里给我发消息
售前:cuwww
售前:cuwww
售后:cuwww
技术:cuwww