我在php中使用mysqli->close()的时候,总会出现如下的Warning:
Warning: mysqli::close() [mysqli.close]: Couldn’t fetch mysqli in /usr/local/apache2/htdocs/test.php on line 84
PHP代码如下:
class Mysql_class{
private $link;
function __destruct(){
$this->close();
}
function connect($dbhost, $dbport, $dbuser, $dbpasswd, $dbname){
$this->link = new mysqli($dbhost, $dbuser, $dbpasswd, $dbname, $dbport);
…
}
function close(){
$this->link->close();
}
}
$mydb = new Mysql_class($dbhost, $dbport, $dbuser, $dbpasswd, $dbname);
$mydb->close();
找了好久才发现在使用__destruct()执行$this->close()之后,就不需要再手动调用$mydb->close()了,这样mysqli->close就被执行了两次,所以第二次会提示Couldn’t fetch mysqli。