Domanda niubba probabilmente: sto giocherellando con OO_php e trovo qualche difficoltà.

Scenario: ho due classi, una che gestisce le connessioni al database ed una che gestisce un login.
La classe che gestisce la connessione a DB è:
Codice PHP:
class DB_Connect {
      
      
//Default values
      
private $db_host;
      private 
$db_name;
      private 
$db_user;
      private 
$db_pass;
      
      private 
$db;
      
      public function 
DB_Connect($db_host$db_name$db_user$db_pass) {
          
$this->db mysql_connect($db_host$db_user$db_pass) or die (mysql_error()."
Unable to connect to the specified host using:
HOST: '
$db_host'
USER: '
$db_user'
PASS: '
$db_pass'");
          
mysql_select_db($db_name) or die(mysql_error()."
Unable to select the specified DATABASE: '
$db_name'");
          
          
$db_charset mysql_query"SHOW VARIABLES LIKE 'character_set_database'" );
          
$charset_row mysql_fetch_assoc$db_charset );
          
mysql_query"SET NAMES '" $charset_row['Value'] . "'" );
          unset( 
$db_charset$charset_row );
      }
      
      public function 
getConnection() {
          return 
$this->db;
      }
      
      public function 
doQuery($query) {          
          
$result mysql_query($query$this->db) or die(mysql_error()."
Error while executing: "
.$query);
          return 
$result;
      }
      
      public function 
disconnect() {
          
mysql_close($this->db);
      }

la classe che gestisce il login ha un metodo statico che gestisce i casi di password dimenticata e generazione nuova password.

Posto solo quello perché il resto funziona egregiamente
Codice PHP:
public static function forgottenPassword($connection$email$table) {
        
$query "SELECT id FROM {$table} WHERE email='{$email}'";
        
$result $connection->doQuery($query);

// segue altro codice ma tanto non ci arrivo, mi becco un errore prima 
Veniamo al dunque. Nella pagina di login ho questo (solo l'inizio della pagina):
Codice PHP:
<?php
  
include("../includes/config.inc.php");
  
session_start();
  
  
$db = new DB_Connect($db_host$db_name$db_user$db_pass);
  
$_SESSION['db'] = $db;
Ovvero metto in sessione l'oggetto connessione per poterlo riutilizzare (o così mi illudo)

Nella pagina di recupero password:
Codice PHP:
<?php  
  
include("../includes/config.inc.php");
  
session_start();
      
  
$db $_SESSION['db'];
      
  if(isset(
$_POST['submit'])) {    
    
    
Login::forgottenPassword($db$_POST['username'], "users");
        
  }
?>
Quello che succede quando provo tale codice è che ricevo un bell'errore:

codice:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\Andrea\Documents\Siti\sito_test\includes\config.inc.php on line 33
per intenderci, la riga 33 è la riga del metodo doQuery dove verrebbe eseguita la query. A me sembra di essere coerente e consistente nell'utilizzo di un oggetto di tipo DB_Connect, ma apparentemente la giostra si rompe da qualche parte.