o, ancora più comodamente
	codice:
	class MySQLDbDriver extends BaseDbDriver
{
.
.
.
    public function Escape($Value)
    {
        return mysql_real_escape_string($Value, $this->link);
    }
.
.
.
    public function Query($Query)
    {
        // Acquisisce gli argomenti opzionali della funzione (sono i parametri della query)
        // rimuovendo il primo in quanto è la query stessa
        $arguments = func_get_args();
        array_shift($arguments);
        
        // Effettua l'escape degli argomenti
        foreach($arguments as $key => $value)
        {
            $arguments[$key] = $this->Escape($value);
        }
        
        // Costruisce la query inserendo gli argomenti
        $escapedQueryWithArguments = vsprintf($Query, $arguments);
        
        // Esegue la query
        if ($this->isBuffered == true)
        {
            $result = mysql_query($escapedQueryWithArguments, $this->link);
        }
        else
        {
            $result = mysql_unbuffered_query($escapedQueryWithArguments, $this->link);
        }
        
        // Verifica se la query è riuscita
        if ($result === false)
        {
            // Lancia un'eccezione
            throw new SqlQueryException(mysql_errno($this->link), mysql_error($this->link), $escapedQueryWithArguments);
        }
        
        // Operazione riuscita, restituisce la risorsa
        return $result;
    }
.
.
.
}
 
l'ho riscritta qui al volo, quindi potrebbero esserci degli errori, in ogni caso cosi facendo si tutta la gestione parecchio più semplificata e flessibile