Newsgroup: it.comp.www.php
Titolo: Quale strategia per le connessioni a MySQL?

Sto scrivendo una applicazione web che girera' su una intranet.
Per ora in OGNI pagina php, all'inizio ho queste righe
session_start();
// Ora verifico se l'utente si e' gia' autenticato senno'
// lo rimando alla pagina da cui fare login
if ((!isset($_SESSION["user"])) || $_SESSION["RemoteIP"] != 
$_SERVER['REMOTE_ADDR'])){
			header("Location: Login.html");
			session_destroy();
			exit;			} 			
$comm_P400 = mysql_pconnect($host, $user, $pass)
mysql_select_db($dbName, $conn_LP2004);
Considerato che uso un unico db ($dbname e' sempre lo stesso) e che gli 
utenti si devono autenticare, mi chiedevo se posso risparmiarmi di 
creare tutte le volte la connessione a MySQL e selezionare il $dbname. 
Magari impostando una var di sessione.
Come e' meglio fare?
Marco

 Come e' meglio fare?
Ciao.
Per quanto mi riguarda utilizzo un mio "package" che mi sono creato,
derivato in qualche modo dal layer di astrazione offerto dalle PEAR::DB.
Non necessariamente utilizzo mySql, comunque il concetto e' tranquillamente
portabile.
In "ogni" pagina (uso le virgolette in quanto alla fine il tutto si riduce
ad una index) eseguo un require_once di un file che ho creato come
"interfaccia" (es: dbPackage.php) Esso poi si occupa di configurarmi
l'ambiente con i settaggi per la connessione e la connessione stessa.
Dunque, in ogni pagina inserisco
require_once 'dbPackage.php'
e poi faccio le mie query... :-)
Saluti.
MC
--
Mauro Cecamore
------------------------------
http://www.digitalaveneus.org
------------------------------

 Marco
Ciao,
non sono molto esperto con php, ma guardando un tutorial dove c'e' tra le
altre cose anche l'accoppiata "autenticazione" e "apertura dello stesso db",
ho visto che l'autore apriva la connessione al db nel config.inc.php e usava
sempre la stessa var: $connessione=mysql_pconnect($host, $user, $pass);
deduco quindi che vada bene :) Io sto usando questo "sistema" e per ora non
ho avuto problemi, ma considera che non ho grossi carichi...
Spero di esserti stato utile,
Ciao,
Dade

 e poi faccio le mie query... :-)
Praticamente è la stessa cosa che fa lui perchè, se in ogni pagina usi
require_oce 'tuo_file', differendo questa istruzione dal semplice require
per il fatto che il codice in tuo_file verrebbe inserito solo se NON già
presente, mettendo quella riga in ogni singola pagina, in ogniuna di questa
fai la stessa cosa. Se quel file si preoccupa di aprire la connessione al db
tu la apri in ogni tua pagina. Potrei usare require o include ed avere lo
stesso identico risultato.
Grazie, saluti...
 
http://www.overlookcafe.net
 - H o u s e F a s h i o n C l u b -
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 $connessione=mysql_pconnect($host, $user, $pass);
mysql_pconnect() è molto simile a mysql_connect().
Si differenziano solo in due aspetti.
1. il primo a differenza del secondo prima di aprire una nuova connessione
verifica se non ce ne sia una già aperta con stesso user/pwd. Nel caso la
trovasse usa quella, altrimenti ne apre una nuova. Il secondo apre sempre e
comunque una nuova connessione.
2. il primo non chiude la connessione al compimento dell'esecuzione dello
script e, una connessione così aperta, non verrà chiusa da istruzioni come
mysql_close(). In pratica questa connessione resta sempre attiva. Il secondo
invece termina la connessione al compimento dello script ed è subordinato
all'istruzione mysql_close().
Teoricamente avrebbe senso usare mysql_pconnect() perchè se si considera che
il db dietro un sito è sempre lo stesso e che eventuale connessioni
sarebbero comunque sempre su quel db, lasciare la connessione attiva ha una
sua logica.
Personalmente io in ogni pagina apro la connesione con mysql_connect() e a
fine pagina la chiudo comunque con mysql_close() che, manco servirebbe.
Non mi piace l'idea di avere qualcosa 'appesa' perennemente. Ovviamwente
questa è una decisione personale e non credo che ci sia un metodo giusto.


 mysql_pconnect() è molto simile a mysql_connect().
scusami skunk,
per la pigrizia di non riscrivere la riga ho fatto il copia incolla e ho
commesso un errore:
nel tutorial di cui parlavo, si utilizza mysql_connect e non mysql_pconnect!
effettivamente, a fronte della tua osservazione sarebbe il caso di
utilizzare mysql_pconnect cosi' da non avere troppe cose "appese" come
giustamente hai fatto notare.
ci tenevo a chiarire l'errore che ho commesso :)
ciao ragazzi
Dade

 stesso identico risultato.
Beh no, aspetta... lui diceva che in ogni inizio pagina inseriva quel codice
ed io gli ho praticamente suggerito in modo implicito di creare un file da
includere, per centralizzare i settaggi. In sostanza è tutto qui.
Per quando riguarda il tuo distinguo tra require, rqOnce e include nulla da
eccepire, anche se non capisco cosa c'entri... :-)


Grazie ragazzi, ho capito che aprire una connessione a MySQL ad ogni 
pagina non e' poi quella gran castroneria che credevo.
Per il momento quindi lo mantengo cosi', se poi le performance caleranno 
valutero' il pconnect al posto del connect.
Ciao
Marco