有人能解释为什么从类析构函数调用mysql_close()时失败吗 mysql_error()报告"连接关闭失败。"
<?php
class Database
{
private $link_id = 0;
private $query_id = 0;
public $error = "";
public $errorNumber = 0;
public $affectedRows = 0;
public function __construct($server, $user, $pass, $database)
{
$this->link_id = @mysql_connect($server, $user, $pass, false);
if (!$this->link_id)
{
$this->DisplayError("Could not connect to server: <b>$this->server</b>.");
die(mysql_error());
}
if(!@mysql_select_db($database, $this->link_id))
{
$this->DisplayError("Could not open database: <b>$this->database</b>.");
die(mysql_error());
}
}
public function __destruct()
{
if ($this->link_id)
{
if(!@mysql_close($this->link_id))
{
$this->DisplayError("Connection close failed.");
die(mysql_error());
}
}
}
根据第27903号错误报告,由于脚本执行结束,在调用类析构函数时,似乎已经清理了一些资源。
在任何情况下,如手册所示。。。
通常不需要使用mysql_close(),因为非持久性的打开链接在脚本执行结束时会自动关闭。