Ciao a tutti stavo provando a creare una classe pdo ma mi sono bloccato alla gesione degli errori.
Inserendo volutamente dei parametri errati nel costruttore, generando così l'eccezione, la riga
$this->getErr("Errore di Connessione"); mi da il seguente errore
Fatal error: Call to a member function getErr() on a non-object
e non riesco proprio a capire il perchè.
Codice PHP:
<?php
class db extends PDO {   
    private 
$mailerr false;
    private 
$logfile false;
    private 
$mailto "indirizzi_mail";
    
    public function 
__construct $server "localhost"$username "user"$password "pwd"$dbname "nomedb" ) {   
        
$dns = ($dbname) ? "mysql:host={$server};dbname={$dbname}"mysql:host={$server}";      
        try{    
            
parent::__construct($dns$username$password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));   
        }catch (
PDOException $e) {
            
$this->getErr("Errore di Connessione");
        }
    }
    
    private function 
getErr($error ""){
        
// se bisogna mandare la mail
        
if($this->mailerr){
            
$testo "Si è verificato un errore: ".$error." \r\n \r\n Indirizzo del file chiamato: ".$_SERVER['REQUEST_URI'];
            
$subject "db extends Pdo: Error.";
                
//$headers  = "From: $to\r\n";
                //$headers .= "Reply-To: $to\r\n";
                //$headers .= "Return-Path: $to\r\n";
            
if(!mail($to$subject$testo$headers))
                die(
"Errore durante l'invio della Segnalazione!");
        }

        if(
$this->logfile){
            
$fp = @fopen($this->logfile"a");
            @
fwrite($fpdate("d/m/Y H:i:s")." - Si è verificato un errore: ".$e->getMessage()."\r\n");
            @
fclose($fp);
        }

        if(
$this->dieerror){
            die(
"Oops! Si e' verificato un errore interno.
"
.$error."
Stiamo lavorando per risolverlo."
);
        }
    }    
}  
?>