PHP,用于处理MySql和MySql的简单类

PHP,用于处理MySql和MySql的简单类,php,mysql,class,Php,Mysql,Class,下面是一个用于处理数据库的简单php类。此类的问题在于uu destruct方法中,该方法启动mysql_close函数。 如果我创建两个位于代码中非常接近的DB对象,则会导致错误。看起来mysql\u关闭了所有数据库连接,而不仅仅是他自己的$this->dbLink。为什么会发生这种情况? require_once("modules/required/OptionsReader/m_OptionsReader.php"); class DB{ private

下面是一个用于处理数据库的简单php类。此类的问题在于uu destruct方法中,该方法启动mysql_close函数。 如果我创建两个位于代码中非常接近的DB对象,则会导致错误。看起来mysql\u关闭了所有数据库连接,而不仅仅是他自己的$this->dbLink。为什么会发生这种情况?
    require_once("modules/required/OptionsReader/m_OptionsReader.php");

    class DB{
        private $dbLink;

        public function  __construct() {
            $options = new OptionsReader();
            $DBSettings = $options->getDBSettings();
            $this->dbLink = mysql_connect($DBSettings->getAddress(),$DBSettings->getUserName(),$DBSettings->getPswd());
            @mysql_select_db($DBSettings->getDBName()) or die( "Unable to select database");
            mysql_query( "set names 'utf8'" );
        }

        public function  __destruct() {
            mysql_close($this->dbLink);
        }


        public function launchQuery($query){
            return mysql_query($query);
        }
    }
?>
另外,我知道这个问题的简单解决方案就是让from_udesctuctor关闭函数,然后手动启动它,但了解发生了什么事情会很好。谢谢你

@zneak是正确的。mysql_connect不提供池连接。问题是,为什么要关闭连接?在我多年的PHP开发过程中,一方面我可以计算出我使用mysql\u connect的次数,我几乎完全使用mysql\u pconnect

从-

建立到的持久连接 MySQL服务器

mysql\u pconnect的行为非常类似 mysql\u连接两个主要 差异

首先,连接时,函数 会首先尝试找到一个持久的 已打开的链接具有相同的 主机、用户名和密码。如果是 找到时,将为其指定一个标识符 返回而不是打开新的 连接

第二,与SQL的连接 服务器关闭时,服务器将不会关闭 脚本的执行结束。相反 该链接将在未来继续开放 使用mysql\u关闭不会关闭 建立的链接 mysql\u pconnect

@兹尼克是对的。mysql_connect不提供池连接。问题是,为什么要关闭连接?在我多年的PHP开发过程中,一方面我可以计算出我使用mysql\u connect的次数,我几乎完全使用mysql\u pconnect

从-

建立到的持久连接 MySQL服务器

mysql\u pconnect的行为非常类似 mysql\u连接两个主要 差异

首先,连接时,函数 会首先尝试找到一个持久的 已打开的链接具有相同的 主机、用户名和密码。如果是 找到时,将为其指定一个标识符 返回而不是打开新的 连接

第二,与SQL的连接 服务器关闭时,服务器将不会关闭 脚本的执行结束。相反 该链接将在未来继续开放 使用mysql\u关闭不会关闭 建立的链接 mysql\u pconnect


是否有可能mysql_connect池连接对象,如果不必打开同一个数据库的2个连接?无论如何,除非您的脚本将运行很长时间,否则您可以让PHP自行关闭连接。我认为这样做会简单得多。那么php是否会自动关闭mysql连接,因此根本不需要担心?mysql会在脚本完成后关闭连接,通常不需要担心,但是,在打开另一个连接之前,让您的类检查活动连接可能更合适。您可以使用mysqli,这可能会与您期望的更接近。是否有可能mysql_connect池连接对象,如果不必打开同一个数据库的2个连接?无论如何,除非您的脚本将运行很长时间,否则您可以让PHP自行关闭连接。我认为这样做会简单得多。那么php是否会自动关闭mysql连接,因此根本不需要担心?mysql会在脚本完成后关闭连接,通常不需要担心,但是,在打开另一个连接之前,让您的类检查活动连接可能更合适。您可以使用mysqli,这可能会与您期望的更接近。