Scusate, avete ragione. Ma le operazioni sono corrette o manca qualche controllo? Valuterò singolarmente i vostri suggerimenti, per i quali intanto vi ringrazio.

Codice PHP:
<?php

class dbManager {


    
// Definizione degli Attributi di classe

    
private $dbh;        // Connettore database
    
private $dbUser;    // Utente del database
    
private $dbPwd;        // Password utente
    
private $dbName;    // Nome del database
    
private $charset;    // Charset
    
private $stat;        // Statement per l'esecuzione della query

    // Metodo costruttore
    
public function __construct(){

        
// Valorizzo i dati per la connessione al database (ESEMPIO)
        
$this->dbUser 'xxxx';
        
$this->dbPwd 'yyyy';
        
$this->dbName 'wwww';
        
$this->charset 'zzzz';
        
$this->dbOpenConn();
    }

    
/*
     * **************************************************************
     *
     *                             METODI PRIVATI
     *
     * **************************************************************
     */

    // Metodo per connettersi al database
    
private function dbOpenConn(){
        
$this->dbh oci_connect($this->dbUser,$this->dbPwd,$this->dbName,$this->charset);
    }

    
// Metodo per disconnettere il database
    
private function dbCloseConn(){
        
oci_close($this->dbh);
    }

    
// Metodo per fare il parsing della query
    
private function dbParseQuery($query){
        
$this->stat oci_parse($this->dbh,$query);
        if (!
$this->stat){
            echo 
oci_error($this->stat);
            exit();
        }
    }

    
// Metodo per eseguire la query
    
private function dbExecuteQuery(){
        if (!
oci_execute($this->stat)){
            echo 
oci_error($this->stat);
            exit();
        }
    }

    
// Metodo per il bind delle variabili
    
private function dbBind($query,$params){

        
$nomi = array();
        
$valori = array();

        
// Recupero i nomi e i valori delle variabili
        
foreach ($params as $v_name => $v_value){
            
$nomi[] = $v_name;
            
$valori[] = $v_value;
        }

        
// Eseguo il bind per ogni coppia nome->valore
        
for ($i=0;$i<count($nomi);$i++)
        
oci_bind_by_name($this->stat,$nomi[$i],$valori[$i]);

    }

    
/*
     * Metodo per costruire l'array dei risultati in modo numerico.
     * Se il risultato è un insieme di record, si ha una matrice avente
     * tante righe quanti sono i risultati della query (da 0 a n-1).
     * Se il risultato è un solo record invece ritorna un array con i valori
     * risultanti
     */
    
private function dbNumericResult(){
        
// Uso un contatore per assegnare le righe
        
$j 0;

        
$result = array();

        while (
oci_fetch($this->stat)){

            
// Ogni elemento dell'array è un array di posti pari al numero di colonne

            // Se ho una sola colonna carico l'array monodimensionale
            
if (oci_num_fields($this->stat) == 1){
                
$result[] = oci_result($this->stat,1);
            }

            
// Se ho più di una colonna, uso un array bidimensionale
            
else{
                    
                
// Per ogni colonna aggiungo aggiungo il valore ritornato dalla query
                
for ($i=0;$i<oci_num_fields($this->stat);$i++){
                    
$result[$j][$i] = oci_result($this->stat,$i+1);
                }
                
$j++;
            }
        }

        if (
count($result) == 1)
            return 
$result[0];
        return 
$result;
    }

    
/*
     * Metodo per costruire l'array associativo dei risultati
     * Se il risultato è un insieme di record, si ha una matrice in cui ogni riga
     * è rappresentata da un numero e ogni campo dal nome dello stesso. Se invece
     * si ha un unico record, il metodo ritorna un array associativo.
     */

    
private function dbAssociativeResult(){

        
$result = array();

        
// Se seleziono una sola colonna ottengo un array numerico
        
if (oci_num_fields($this->stat) == 1)
        while (
oci_fetch($this->stat))
        
$result[] = oci_result($this->stat,1);
        else{
            while (
$result[] = oci_fetch_array($this->stat,OCI_ASSOC)){}

            
/* L'ultima assegnazione è vuota perchè la condizione non si verifica
             * quindi tolgo l'ultimo elemento dall'array, altrimenti se ne conta
             * uno in più
             */
            
unset($result[count($result)-1]);
        }

        if (
count($result) == 1)
        return 
$result[0];
        return 
$result;
    }

    
/*
     * **************************************************************
     *
     *                             METODI PUBBLICI
     *
     * **************************************************************
     */

    // Metodo per eseguire insert o update
    
public function querySqlInsUpDel($query){

        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Esecuzione della query
        
$this->dbExecuteQuery();

        return;
    }
    
// Metodo per eseguire insert o update con bind
    
public function querySqlBindInsUpDel($query,$params){

        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Bind delle variabili
        
$this->dbBind($query,$params);
        
// Esecuzione della query
        
$this->dbExecuteQuery();

        return;
    }


    
/*
     * Metodo per eseguire query sql
     *
     * note:     questo metodo effettua la query e ritorna un array numerico monodimensionale
     *             se si è selezionato un solo attributo, e un array numerico bidimensionale
     *             se si è selezionato un insieme di attributi.
     */
    
public function querySql($query){

        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Esecuzione della query
        
$this->dbExecuteQuery();
        
// Costruisco l'array dei risultati in modo numerico
        
$result $this->dbNumericResult();

        
// L'array (monodimensionale o multidimensionale) è caricato
        
return $result;

    }

    
/*
     * Metodo per eseguire query sql con ritorno di un array associativo
     *
     * note:     questo metodo effettua la query e ritorna un array monodimensionale
     *             numerico se si è selezionato un solo attributo, e un array
     *             bidimensionale numerico/associativo se si è selezionato un insieme
     *             di attributi.
     */
    
public function querySqlAssoc($query){

        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Esecuzione della query
        
$this->dbExecuteQuery();
        
// Costruisco l'array dei risultati in modo associativo
        
$result $this->dbAssociativeResult();

        
// L'array (monodimensionale o multidimensionale) è caricato
        
return $result;

    }

    
/*
     * Metodo per eseguire query sql con bind di variabili
     *
     * note:     questo metodo effettua la query e ritorna un array numerico monodimensionale
     *             se si è selezionato un solo attributo, e un array numerico bidimensionale
     *             se si è selezionato un insieme di attributi.
     */
    
public function querySqlBind($query,$params){

        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Bind delle variabili
        
$this->dbBind($query,$params);
        
// Esecuzione della query
        
$this->dbExecuteQuery();
        
// Costruisco l'array dei risultati in modo numerico
        
$result $this->dbNumericResult();

        
// L'array (monodimensionale o multidimensionale) è caricato
        
return $result;

    }

    
/*
     * Metodo per eseguire query sql con ritorno di un array associativo e bind di variabili
     *
     * note:     questo metodo effettua la query e ritorna un array monodimensionale
     *             numerico se si è selezionato un solo attributo, e un array
     *             bidimensionale numerico/associativo se si è selezionato un insieme
     *             di attributi.
     */
    
public function querySqlAssocBind($query,$params){
            
        
// Parsing della query SQL
        
$this->dbParseQuery($query);
        
// Bind delle variabili
        
$this->dbBind($query,$params);
        
// Esecuzione della query
        
$this->dbExecuteQuery();
        
// Costruisco l'array dei risultati in modo numerico
        
$result $this->dbAssociativeResult();

        
// L'array (monodimensionale o multidimensionale) è caricato
        
return $result;

    }

    
// Metodo distruttore
    
public function __destruct(){
        
// Chiudo
        
$this->dbCloseConn();
    }

}