如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数相关的知识,希望对你有一定的参考价值。

嘿我使用php 7,并告诉它它不支持mysql功能。我研究了net并找到了fix_mysql.inc.php,告诉我将所有Myaql函数替换为Mysqli,但现在我不知道如何实现它。请帮忙!

fix_mysql.inc.php

<?php
/**
 * replacement for all mysql functions
 */
if (!function_exists("mysql_connect")){
    /* warning: fatal error "cannot redeclare" if a function was disabled in php.ini with disable_functions:
    disable_functions =mysql_connect,mysql_pconnect,mysql_select_db,mysql_ping,mysql_query,mysql_fetch_assoc,mysql_num_rows,mysql_fetch_array,mysql_error,mysql_insert_id,mysql_close,mysql_real_escape_string,mysql_data_seek,mysql_result
    */
    function mysql_connect($host, $username, $password){
        global $dbconnect;
        $dbconnect = mysqli_connect($host, $username, $password);
        return $dbconnect;
    }
    function mysql_pconnect($host, $username, $password){
        global $dbconnect;
        $dbconnect = mysqli_connect("p:".$host, $username, $password);
        return $dbconnect;
    }
    function mysql_select_db($db,$dbconnect){
        return mysqli_select_db ( $dbconnect,$db );
    }
    function mysql_ping($dbconnect){
        return mysqli_ping ( $dbconnect );
    }
    function mysql_query($stmt){
        global $dbconnect;
        return mysqli_query ($dbconnect, $stmt );
    }
    function mysql_fetch_assoc($erg){
        return mysqli_fetch_assoc ($erg );
    }
    function mysql_num_rows($e){
        return mysqli_num_rows ($e );
    }
    function mysql_affected_rows($e=NULL){
        return mysqli_affected_rows ($e );
    }
    function mysql_fetch_array($e){
        return mysqli_fetch_array ($e );
    }
    function mysql_error(){
        global $dbconnect;
        return mysqli_error ($dbconnect);
    }
    function mysql_insert_id($cnx){
        return mysqli_insert_id ( $cnx );
    }
    function mysql_close(){
        return true;
    }
    function mysql_real_escape_string($s){
        global $dbconnect;
        return mysqli_real_escape_string($dbconnect,$s);
    }
    function mysql_data_seek($re,$row){
        return mysqli_data_seek($re,$row);
    }
    function mysql_result($res,$row=0,$col=0){ 
        $numrows = mysqli_num_rows($res); 
        if ($numrows && $row <= ($numrows-1) && $row >=0){
            mysqli_data_seek($res,$row);
            $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
            if (isset($resrow[$col])){
                return $resrow[$col];
            }
        }
        return false;
    }
    function mysql_get_server_info() {
        global $dbconnect;
        return mysqli_get_server_info($dbconnect);
    }
    function mysql_set_charset($csname) {
        global $dbconnect;
        return mysqli_set_charset($dbconnect,$csname);
    }
    function mysql_fetch_object($result) {
        return mysqli_fetch_object($result);
    }
}
答案

如果我是你,我会重写你的mysql查询并使用mysqli准备好的语句。如果您想要一些示例代码以适应您自己的使用,请告诉我。

另一答案

请注意,这只是使用此include函数修复某些旧代码的一种解决方法,并且生成的项目比使用较新的mysqli函数时更容易受到攻击。如果您确定这不会使您的服务器面临风险,您可以通过在旧代码的开头添加此行来修复旧代码:

<?php
include_once('fix_mysql.inc.php');

另见:https://stackoverflow.com/a/37877644/1069083

以上是关于如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数的主要内容,如果未能解决你的问题,请参考以下文章

什么软件可以打开sql文件 400多M

用 Enter 替换回车符 ^M

shell awk如何输出文件的指定列

各位大神,MATLAB中如何将编写M函数文件与Simulink之间相互调用,小弟刚学不久,求指点。最好能详细一点。

如何在后台重复运行 Matlab .m 文件?

如何在后台重复运行 Matlab .m 文件?