PHP,用于处理MySql和MySql的简单类
下面是一个用于处理数据库的简单php类。此类的问题在于uu destruct方法中,该方法启动mysql_close函数。 如果我创建两个位于代码中非常接近的DB对象,则会导致错误。看起来mysql\u关闭了所有数据库连接,而不仅仅是他自己的$this->dbLink。为什么会发生这种情况?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
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,这可能会与您期望的更接近。