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

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
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
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.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
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
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
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);
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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
Autore Titolo Forum Risposte Data
Matilde1 PHP: errore connessione database PHP 12
KILLERIX [PHP] Notifiche utente, connessione database, struttura generale dati PHP 3
S connessione database oracle in javascript Ajax 6
I Connessione database OleDB Classic ASP 1
B Problemi con connessione database ASP.NET 1
T Connessione a piu database Java 0
A connessione ad un database mysql con javascript Javascript 1
S problemi di connessione al database phpmyadmin in locale Database 1
M Connessione Database ed estrazione dati Javascript 6
S Connessione a database sul web mssql2005 da sito locale appoggiato su piattaforma apache (easyphp, x PHP 11
P [RISOLTO]Classe database: connessione in costruttore? PHP 7
Y Connessione Visual Basic con DataBase Access? MS Access 0
S [EASYPHP] Connessione database in locale PHP 18
A Problema con connessione al database PHP 25
R Connessione a database AcuCobol PHP 0
P Problemi di connessione al database tramite synology PHP 0
T connessione database Java 0
G Connessione Database accdb asp Classic ASP 1
M connessione al database non riuscita MySQL 4
L Problema Connessione Database ACCESS Classic ASP 1
S problema di connessione al database locale PHP 1
F connessione database access in dreamweaver Classic ASP 10
max1850 Connessione a database .accdb di Access 2007 Classic ASP 1
max1850 Connessione ad un database esterno Classic ASP 5
O connessione database access PHP 0
R Connessione database Classic ASP 6
D connessione database Classic ASP 3
L Cambio connessione database PHP 1
M connessione al database mysql MySQL 2
A Problema con la connessione ad un database access PHP 3
E connessione ad un database... ASP.NET 0
F connessione database e pag asp Classic ASP 3
S connessione database PHP 0
R stringa connessione asp <->database Classic ASP 1
S connessione database Database 1
S connessione database Classic ASP 1
S problemi connessione database MS Access 1
M JAVA connessione database pocket Java 0
M Connessione al database!! Classic ASP 3
Nik Problema connessione database :S Classic ASP 4
A Errore nella connessione ad un database PHP 1
S errore connessione database HTML e CSS 1
D Problema di connessione ad un database Classic ASP 0
C Connessione ad un Database SQL Classic ASP 4
T problemi di connessione MySQL 2
S Risoluzione Immagini e Connessione Joomla 0
A Connessione a mdb con php7 PHP 1
felino Modem Router Home&Life HUB Sercomm WD300: connessione instabile Adsl e Connettività 0
N Server mysql non raggiungibile da connessione esterna MySQL 1
R Problema connessione db PHP 7

Discussioni simili