Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    126

    rimanere connessione al database aperta

    salve ho un problema di logica per tenere aperta la connessione al database.

    ho una classe che contiene i metodi della connessione al db mysql
    di seguito c'è la classe io cui seleziono dei campi dal db creo un oggetto e lo metto in un array per poi visualizzare tutto in un altra pagina di visualizzazione dati...

    il fatto è che io vorrei aprire la connessione nell'header della pagina e chiuderla nel footer...
    e non aprirla e chiuderla nella classe...
    ho provato a rimuovere la connessione dalla classe e aprirla e chiuderla nell'header e nel footer...ma non viene vista ll'interno della classe stessa.

    Anche perchè se devo richiamare altri 5 metodi diversi contenti altrettanti aperture di connessioni mi si rallenta il sito.

    Grazie anticipatamente

    Codice PHP:
    class listLearnSee extends learnSee 
    {
        var 
    $info;
        var 
    $randLearn;

        public function 
    listLearnSee($rand)
        {

            
    $dataBase=new DBData();
            
    //apro la connessione al db
            
    $dataBase->openConnection();
            
    $sql="select id,nome,descrizione,località,nomeinglese,desinglese from saperevedere";
            
    $res=$dataBase->Query($sql);
            while (
    $data=@mysql_fetch_array($res)) {
                
    $info = new city();
                
    $info->setName($data["nome"]);
                
    $info->setId($data["id"]);
                
    $learn[] = $info;

            }
            
    //chiudo la connessione
            
    $dataBase->closeConnection();

            if (
    $rand=="yes") {
                
    $totalLearn count($learn);
                
    $theLearn=rand(0,$totalLearn-1);
                
    $randLearn[]=$learn[$theLearn];
                return 
    $randLearn;
            }else { return 
    $learn;}
        } 

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Codice PHP:
    class listLearnSee extends learnSee
    {
        var 
    $info;
        var 
    $randLearn;
        private 
    $dataBase//oppure public, dipende dalle tue esigenze

        
    public function listLearnSee($rand){
            
    $this->dataBase=new DBData();
    //qui va il resto del codice sostituendo $dataBase con $this->dataBase
            
    }

        public function 
    __destruct(){
            
    $this->dataBase->closeConnection();
            }
        } 
    prova in questo modo

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    126
    ciao grazie ho provato a fare così e mi da questo errore:
    Accesso non consentito per l'utente: 'ODBC'@'localhost' (Password: NO)

    Codice PHP:
    class listLearnSee extends learnSee 
    {
        var 
    $info;
        var 
    $randLearn;
        public 
    $dataBase;
        public function 
    listLearnSee($rand)
        {

            
    //$dataBase=new DBData();
            //apro la connessione al db
            //$dataBase->openConnection();
            
                 
    $this->dataBase=new DBData(); 
            
    $sql="select id,nome,descrizione,località,nomeinglese,desinglese from saperevedere";
            
    $res=$this->dataBase->Query($sql);
            while (
    $data=@mysql_fetch_array($res)) {
                
    $info = new city();
                
    $info->setName($data["nome"]);
                
    $info->setId($data["id"]);
                
    $learn[] = $info;
            }
            
    //chiudo la connessione
            
    $this->dataBase->closeConnection();

            if (
    $rand=="yes") {
                
    $totalLearn count($learn);
                
    $theLearn=rand(0,$totalLearn-1);
                
    $randLearn[]=$learn[$theLearn];
                return 
    $randLearn;
            }else { return 
    $learn;}
        }

        public function 
    __construct()
        {
            
    // operazioni di inizializzazione
        
    }

        public function 
    __destruct()
        {
            
    // operazioni eseguite prima della distruzione
            
        
    }


  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Codice PHP:
    class listLearnSee extends learnSee
    {
        var 
    $info;
        var 
    $randLearn;
        public 
    $dataBase;
        public function 
    listLearnSee($rand)
        {

            
    //$dataBase=new DBData();
            //apro la connessione al db
            //$dataBase->openConnection();
            
                 
    $this->dataBase=new DBData();
            
    $this->dataBase->openConnection();
            
    $sql="select id,nome,descrizione,località,nomeinglese,desinglese from saperevedere";
            
    $res=$this->dataBase->Query($sql);
            while (
    $data=@mysql_fetch_array($res)) {
                
    $info = new city();
                
    $info->setName($data["nome"]);
                
    $info->setId($data["id"]);
                
    $learn[] = $info;
            }
            
    //chiudo la connessione
            

            
    if ($rand=="yes") {
                
    $totalLearn count($learn);
                
    $theLearn=rand(0,$totalLearn-1);
                
    $randLearn[]=$learn[$theLearn];
                return 
    $randLearn;
            }else { return 
    $learn;}
        }

        public function 
    __construct()
        {
            
    // operazioni di inizializzazione
        
    }

        public function 
    __destruct()
        {
           
    $this->dataBase->closeConnection();
            
        }

    e così?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.