Connessione al database: come chiuderla e decidere se chiusa o aperta?

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve a tutti, una piccola domanda magari stupida ma non ho trovato granchè al riguardo

Nel mio script ho necessità di colelgarmi a più databse ed in alcuni casi li apro insieme semplicemente
PHP:
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBA") or die("xxImpossibile connettersi al database $DBA");

esraggo i dati che mi servono e poi
PHP:
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBB") or die("xxImpossibile connettersi al database $DBB");

dato che mi incasino non poco a fare

PHP:
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
$LINK2= @mysql_select_db("$DBB") or die("xxImpossibile connettersi al database $DBB");
etc. per poi chiuderela con mysql_close($LINK2)

se io alla fine delle due estrazioni scrivo

PHP:
msyql_close()

mi chiude entrambi le connessioni?

Poi domanda acnora più stupida ma ho letto apreri contrastanti nel web.

LA connessione conviene chiuderla anche se tra un file e l'altro ho bisogno di connettermi più volte?

THANK
 
Lo script php agisce per istanze: se io avvio pagina1.php e lo fa anche un altro utente, sono due esecuzioni diverse e slegate fra loro.

Conseguentemente, se apri la connessione ad inizio istanza, alla fine devi chiuderla poiché questa non viene condivisa fra le varie istanze (salvo che non progetti l'applicazione di proposito).

Quanto a mysql_close(), la documentazione specifica chiaramente che..
If link_identifier isn't specified, the last opened link is used.
..e dovresti quindi utilizzare l'istruzione una volta per ogni connessione al database che hai creato, specificandone il riferimento come parametro.


Risposto alle tue domande, vorrei consigliarti di non utilizzare l'estensione mysql_* ma invitarti ad usare estensioni più recenti e performanti come ad esempio MySqli o PDO in quanto l'estensione mysql di PHP è deprecata e sarà in futuro rimossa nelle release di PHP.
 
Lo script php agisce per istanze: se io avvio pagina1.php e lo fa anche un altro utente, sono due esecuzioni diverse e slegate fra loro.

Conseguentemente, se apri la connessione ad inizio istanza, alla fine devi chiuderla poiché questa non viene condivisa fra le varie istanze (salvo che non progetti l'applicazione di proposito).

Quanto a mysql_close(), la documentazione specifica chiaramente che..

..e dovresti quindi utilizzare l'istruzione una volta per ogni connessione al database che hai creato, specificandone il riferimento come parametro.


Risposto alle tue domande, vorrei consigliarti di non utilizzare l'estensione mysql_* ma invitarti ad usare estensioni più recenti e performanti come ad esempio MySqli o PDO in quanto l'estensione mysql di PHP è deprecata e sarà in futuro rimossa nelle release di PHP.

scusa non ho ben capito ma...........sono quindi costretto ad aprire la connessione con
PHP:
$link1=@mysql_select_db("$DBA") or die("xxImpossibile connettersi al database $DBA");
per poi chiuderla con
PHP:
mysql_close($link1)

al riguardo della sintassi è un vero problema perchè il mio script conta non so quante pagine e ristudiarmi il sistema PDO o msqli sarebbe un grosso problema
 
Si, devi farlo per ogni connessione che apri e il riferimento della connessione si prende sul mysql_connect().

PHP:
$link1 = mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBA") or die("xxImpossibile connettersi al database $DBA"); 

#> Tuo codice php...

mysql_close($link1);
 
al riguardo della sintassi è un vero problema perchè il mio script conta non so quante pagine e ristudiarmi il sistema PDO o msqli sarebbe un grosso problema
E' molto più facile di quanto tu creda perché una volta capito il funzionamento è semplice utilizzare mysqli o pdo e il nome delle funzioni spesso è simile a quelle di mysql.
E' necessario studiarlo quando il tuo servizio di hosting aggiorna php ad una versione in cui mysql è obsoleto e a quel punto non ti funzionerà fino a quanto non passi a mysqli o pdo.
 

Discussioni simili