questa è la classe che uso per il db, la elenco tutta per correttezza
codice:
class TMySQL
{
    private $hostname;
    private $username;
    private $password;
    private $dbname;
    
    private $active;    //    variabile di controllo sulla connessione dell'istanza
    private $link;        //    connessione attualmente attiva
    
    private $tab_log_error;
    private $last_query;
    
    /*    ----------    __CONSTRUCT    ----------    */
    //    l'host e il database saranno sempre i soliti
    public function __construct($host, $db)
    {
        $this->active = false;    //     nessuna connessione attiva
        $this->link = false;    //
    
        $this->hostname = $host;
        $this->dbname = $db;
        
        $last_query = NULL;
    }
    
    /*    ----------    __DESTRUCT    ----------    */
    public function __destruct()
    {
        $this->disconnect();
    }
    
    /*    ----------    CONNECT    ----------    */
    //    ad ogni connessione ci riferiremo sempre come username
    //    nel caso l'accesso sia privilegiato, verrà passato il parametro alla funzione
    public function connect( $username = "username", $password = "password" )
    {
        //    se non c'è ancora una connesione
        if( $this->active == false )
        {
            //    mi assicuro che i parametri vengano inseriti correttamente
            $name = ($username == NULL) ? "username" : ($username == "") ? "username" : $username;
            $pass = ($password == NULL) ? "password" : ($password == "") ? "password" : $password;
            $username = trim( filter_var($name,FILTER_SANITIZE_STRING) );
            $password = trim( filter_var($pass,FILTER_SANITIZE_STRING) );
            
            //    utilizzo l'username e password passati come parametro
            $this->link = mysql_connect( $this->hostname, $username, $password ) or die("Impossibile stabilire una connessione.");
            
            //    se mi sono connesso, mi aggancio al database
            $select_db = mysql_select_db($this->dbname, $this->link) or die("Impossibile connettersi al database.");
                if( $select_db == false )
                    echo $_GET['sql_error'] = $this->log_error();
            
            //    connessione avvenuta con successo
            $this->active = true;
            //    l'username e password verranno confermati solo dopo l'avvenuta connessione
            $this->username = $username;
            $this->password = $password;
            
            return true;
        }
        return false;
    }
    
    /*    ----------    DISCONNECT    ----------    */
    //    la funzione disconnette la sua connessione. non altre.
    public function disconnect()
    {
        if( $this->active == true  )
        {
            //    ovviamente l'istanza fa sempre e solo riferimento a se stessa
            $status = mysql_close( $this->link );
                if( $status == false )
                    $_GET['sql_error'] = $this->log_error();
            //    disconnessione avvenuta con successo
            $this->active = false;
            $this->link = false;
            return true;
        }
        return false;
    }
    
    //    il parametro $query, per il metodo query($query) deve essere una stringa
    
    /*    ----------    QUERY    ----------    */
    //    $query => string
    public function query( $query )
    {
        if( is_string($query) )
        {
            //    tengo traccia dell'ultima query per il log_error
            $this->last_query = $query;
            //    copio la stringa passata
            $string = $query;
            //    eseguo l'interrogazione
            $query = mysql_query($string);
            //    se non è stata eseguita l'interrogazione visualizzo l'errore relativo
                if( $query == false )
                    $_GET['sql_error'] = $this->log_error();
            return $query;
        }
        return false;
    }
    
    /*    ----------    EXTRACT    ----------    */
    //    query => resource
    public function extract_row( $result )
    {
        if( $this->active == true )
        {
            if( is_resource($result) )
            {
                $obj = mysql_fetch_object($result);
                    if( $obj == false )
                        $_GET['sql_error'] = $this->log_error();
                
                return $obj;
            }
            else
            {
                $_GET['sql_error'] = $this->log_error();
            }
        }
        else
        {
            $_GET['sql_error'] = $this->log_error();
        }
    }
    
    public function log_error()
    {
        /*
        if( mysql_error($this->link) )
        {
            $date = getdate();
            $error = mysqli_error($this->link);
            $query = $this->last_query;
            $this->query("INSERT INTO ".$tab_log_error." (date, error, last_query) VALUES ('".$date."','".$error."','".$query."')");

            return mysql_error($this->link);
        }
        */
        return mysql_error($this->link);
    }
}