这是我要尝试的操作:我有一个执行所有数据库操作的db.php文件。

它有2种静态方法,连接和断开连接。

在我的其他文件中,我只是使用db :: connect()和db :: deconnect()。断开连接方法中的mysql_close($ con)只是不知道谁是$ con。

由于我不想实例化我的课程,因此静态是唯一的方法。

在类db中声明“ private $ con”似乎没有任何效果。

有任何想法吗?

class db {

    public static function connect() {
        $dbData = parse_ini_file($_SERVER['DOCUMENT_ROOT'].'/config.ini');

        $con = mysql_connect($dbData['host'],$dbData['user'],$dbData['pass']);
        $db = mysql_select_db($dbData['db']);
        if ((!$con) || (!$db))
            return 0;
        else return 1;
    }

    public static function deconnect() {
        mysql_close($con);
    }

}

最佳答案

deconnect中,$con超出范围。

您应该将其设为静态成员,如下所示:

class db {
    static $con;

    public static function connect() {
        $dbData = parse_ini_file($_SERVER['DOCUMENT_ROOT'].'/config.ini');

        self::$con = mysql_connect($dbData['host'],$dbData['user'],$dbData['pass']);
        $db = mysql_select_db($dbData['db']);
        if ((!self::$con) || (!$db))
            return 0;
        else return 1;
    }

    public static function deconnect() {
        if( !isset( self::$con ) ) return;
        mysql_close( self::$con );
    }

}

10-08 13:18