I'm having an issue when closing PEAR DB database connections which either didn't open or possibly having already closed.

I have a disconnect() function which looks like this:

function disconnect()
{       
if ($this->database_connection && !DB::isError($this->database_connection)) { $this->database_connection->disconnect();
} }

It lives in the __destruct() function for a database class which has been extended.

It appears to work as intended most of the time, but one of the classes that extends it seems to be trying to close a connection that either doesn't exist or may have been already closed generating the following error in the log files:

[Wed Feb 13 17:50:19 2008] [error] PHPWARN (suppressed; ErrorProcessor) - 192.168.130.136: mysql_close(): 1073 is not a valid MySQL-Link resource in /usr/local/php5/lib/php/DB/mysql.php at line 277

I'm trying to find the offending class and code, but is there something else I could be doing to check to make sure its a valid connection before trying to close it?

Any help would be much appreciated.

Thanks!

    You might consider skipping the checks for errors and just use the error supression indicator (@).

    function disconnect()
    {       
    if ($this->database_connection) { @$this->database_connection->disconnect();
    } }
      Write a Reply...