Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277

    Tenere aperta connessione MYSQL passando da più script

    Ciao a tutti!

    Ho un problema: ho strutturato un applicazione PHP abbastanza strutturata, interagente con db Mysql.

    Il PHP è composto da numerosi script. Inizialemnte ogni scirpt era fatto in modo da richiamare, inizalemnte, un file di configurazione da cui leggere user name e password ed eseguire mysql_connect().

    Poi ho pensato che forse non era il caso di rieseguire la connect ad ogni script. Ho quindi eseguito la connect una vilta, e salvato il resource id cosìottenuto in $_SESSION['IDCONN']

    Al passaggio allo script successivo però mi accorgo che il contenuto di $_SESSION['IDCONN'] è = 0.

    Da manuale infatti mysql_connect() termina la connessione alla fine dello script.

    Come posso risolvere allora? Non voglio usare connessione persistenti ma c'è secondo voi un metodo più furbo che non sia il 'tirar su' la connessione ogni volta?

    Grazie mille e

  2. #2
    penso che l'unico modo sia l'utilizzo di variabili globali, per risolvere a questo problema framework come lo zend hanno creato un componente a posta (lo zend_registry)

  3. #3
    usare mysql_pconnect?
    Non devi nemmeno passargli l'ID connessione in teoria no?
    Can You See Curtains? Then Isn't Windows!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Grazie a tutti dell'aiuto.

    Però come dicevo:

    1. Non vorrei usare pcconnect. Questo infatti mi obbliga innanzitutto a monitorare continuamente le connessioni al db, poi ci potrebbero essere problemi di lock sulle tabelle mysql (le tabelle rimarrebbero lockate finche la connessione rimane appesa).

    2. lo zend_registry fa le stesse funzioni della variabile superglobale $_SESSION. Ma come ho detto se salvo l'id della connessione in una variabile superglobale questa come d'incanto va a zero quando lo script finisce. E forse proprio un incanto non è, ma è la sintassi del mysql_connect() che appunto chiude la connessione alla fine dello script.

    possibile che in tutte le applicazioni professionali si debba fare sempre un inclusione in tutti gli script al file di connessione?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Un aiutino ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    44
    Utilizza una classe per la connessione al DB, poi da uno script php (per esempio "carica-ambiente.php") crei un nuovo oggetto DB. Ovviamente il file di loading deve essere incluso dove necessario.

    $GLOBALS['MYDB'] = new Database;
    S:

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Ti ringrazio.

    Così facendo però lato elaborazione il carico di lavoro è sempre questo:

    1. parte lo script 'main' che include carica_ambiente.php
    2. main.php esegue carica_ambiente.php
    3. carica_ambiente.php esegue la classe di connessione
    4. la classe di connessione legge il file XML di configurazione

    il che è uguale a includere nello script direttamente o indirettamente la connesisone.

    Vorrei evitare i 4 passaggi, ma mi sembra di capire che non sia possibile....

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    44
    Infatti, a meno che non usi pconnect per l'appunto.
    S:

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.