Simple, use
Singleton for your logger class
<?php
class Logger
{
private static $instance;
private function __construct()
{
//Private constructor
}
public static function getInstance() {
if(!isset(self::$instance)) {
self::$instance = new Logger();
}
return self::$instance;
}
public function logMysql($dbInstance)
{
mysql_query("INSERT INTO LOGS (time,error,source),(" . time() . "," . mysql_error($connection). ",'MYSQL'",$dbInstance->connection);
}
}
class Database
{
private $connection;
public function insert()
{
if(!mysql_query("INSERT SOMETHING WRONG"))
{
$this->onError();
}
}
public function onError()
{
Logger::getInstance()->logMysql($this);
}
}
?>
I don't know about using your Database class in your Error class to save your error, might get you into an infinite loop of mysql errors. In my opninion Logger classes are to be independent so the logging can't take control and stop the entire process.. But that's just my opinion :-)
Bart