Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    oop - connessione al db sempre o per ogni pagina?

    ciao, per quanto riguarda la programmazione ad oggetti di php >= 4, è meglio istanziare una classe all'inizio della pagina e distruggerla alla fine (cosicchè la connessione e le risorse per crearla avviene solo una volta), o è meglio che ad ogni operazione (select, insert,ecc.) la funzione apra la connessione, esegua l'operazione e la chiuda?


    penso che aprire e chiudere sempre la connessione sia dispendioso, ma vorrei dei chiarimenti. grazie ciao

  2. #2
    potresti aprire la connessione nella funzione di sistema __construct e utilizzare il valore restituito dall'apertura della connessione nelle altre funzioni di classe..se usi un'altra classe però il discorso cambia a meno che le altre classi non ereditino da quella che ha aperto la connessione!

  3. #3

    Re: oop - connessione al db sempre o per ogni pagina?

    Originariamente inviato da verardoelvis
    ciao, per quanto riguarda la programmazione ad oggetti di php >= 4, è meglio istanziare una classe all'inizio della pagina e distruggerla alla fine (cosicchè la connessione e le risorse per crearla avviene solo una volta), o è meglio che ad ogni operazione (select, insert,ecc.) la funzione apra la connessione, esegua l'operazione e la chiuda?


    penso che aprire e chiudere sempre la connessione sia dispendioso, ma vorrei dei chiarimenti. grazie ciao
    ed e' pure senza senso.

    apri la connessione a mysql quando ti serve la prima query e la chiudi quando esci dalla pagina. Se non la chiudi attualmente verra' chiusa da sola alla fine dello script, ma credo sia meglio chiuderla con un comando anche per possibili future compatibilita'.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    in poche parole, all'interno di una pagina:

    istanzio la class
    apro la connessione

    operazione1

    operazione2

    chiudo la connessione
    distruggo la classe



    e NON è consigliato fare

    operazione1 (apro, eseguo, chiudo)

    operazione2 (apro eseguo, chiudo)



    VERO?
    grazie ciao

  5. #5
    certamente si.

    Se nell'arco della pagina ti serve liberare la memoria da grossi resultset non piu' utilizzati puoi sempre eseguire un mysql_free_result()

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    di solito io faccio così:

    Codice PHP:
    class Uno {
      protected 
    $host;
      protected 
    $user;
      protected 
    $pass;
      protected 
    $database;

      function 
    __construct() {
        
    $this->host "localhost";
        
    $this->user "user";
        
    $this->$pass "password";
        
    $this->$database "database";
      }
     }

    class 
    Due extends Uno {
      function 
    __construct() {
        
    parent::__construct();
      }

      public function 
    Salva() {
         
    $link mysql_connect($this->host$this->user$this->pass);
         
    $db mysql_db_select($this->$database);
         
    // ecc ecc
      
    }

    utilitzzo semrpe le stesse variabili senza perdere tempo a ridefinirle per ogni classe

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 © 2024 vBulletin Solutions, Inc. All rights reserved.