Newsgroup: it.comp.www.php
Titolo: Chiudere le conessioni al database

Ho una domanda sulle connessioni ad un dabatabse mysql: le connessioni vanno
chiuse col comando mysql_close(); o si chiudono da sole quando la pagina
viene chiusa?? A me risultava essere vera la seconda, quindi non le ho mai
chiuse col comando
mysql_close(); Questo stava per mandare in crasch il server su cui il mio
sito č in hosting...
Grazie
Andrea

 viene chiusa??
http://it.php.net/manual/it/function.msql-close.php
Note that this isn't usually necessary, as non-persistent open links are
automatically closed at the end of the script's execution.

 automatically closed at the end of the script's execution.
Per prima cosa grazie per il link, poi avrei una domanda (stupida): in
quella pagina si parla del comando msql_close(), non del comando
mysql_close(); e si fa riferimento a database msql, non  mysql, che
differenza c'è?? Imaggino nessuna esatto?? Se così è, allora è il mio
provider che dovrebbe fare in modo che le connessioni si chiudano alla
chiusura della pagina, esatto??
Grazie
Andrea

 chiusura della pagina, esatto??
Non proprio ...
Come hai letto, le connessioni vengono chiuse alla fine dell'esecuzione
dello script. Solo che a volte ci possono essere dei "problemini" ...
Prendi questo esempio idiota:
<?
mysql_connect(BLA BLA BLA); // qui avviene la connessione
$q = mysql_query(BLA BLA BLA); // qui leggi i dati con una query
while($r = mysql_fetch_object($q)) {
    .....
}
?>
Immagina ora che il fetch_object sia fatto su una base di dati parecchio
grossa: ovviamente la connessione rimane aperta finchè il php si è letto
tutti i dati dal DB; se poi hai più processi che vanno a lanciare tale
query, capisci perchè rischi di avere rallentamenti, messaggi tipo "Too
many connections" o lamentele del genere!
Tip: rendi le queries più precise (con limit, where e compagnia bella!)
e, se ti serve, un po' di calcoli falli fare al DB e non al PHP! ;-)
Altro appunto: 
<?
mysql_connect(BLA BLA BLA); // qui avviene la connessione
$q = mysql_query(BLA BLA BLA); // qui leggi i dati con una query
while($r = mysql_fetch_object($q)) {
    ..... // supponiamo che leggi solo 2 righe, quindi l'esecuzione del
          // while termina celermente.
}
// Ti ritrovi adesso a questo punto: se lo script non termina, la
// connessione è ancora aperta anche se in pratica non utilizzata.
// Ma se supponi che lo script non sia terminato e che hai codice a
// seguire che esegue calcoloni da paura, ovviamente la connessione
// rimane aperta finchè non vengono portati a termine i calcoli che, a
// ragion del vero, non hanno niente a che fare con il DB, ma che
// tengono lo script in esecuzione e non permettono di chiudere la
// connessione!
Quindi, se ad esempio in uno script devi leggere quel paio di dati da un
DB e, sulla base dei dati che leggi devi fare miriadi di calcoli
successivi, ti conviene mettere un mysql_close() dopo che hai terminato
di leggere i dati.
Poi dipende da molte altre cose: numero di connessioni allo script in
primis, quantità di operazioni da fare sul db e via dicendo: la cosa più
intelligente è vedere caso per caso se valga la pena chiamare
mysql_close() oppure lasciare che la connessione sia chiusa dal PHP una
volta che lo script termina!
Ciao
--ev

 volta che lo script termina!
Grazie 1000 delle spiegazioni
Andrea

 differenza c'č??
Scusami.. ti ho dato il link sbagliato.. nella fretta ho sbagliato a
digitare..
http://it.php.net/manual/it/function.mysql-close.php
msql riguarda.. appunto.. msql
http://it.php.net/manual/it/ref.msql.php
http://www.hughes.com.au/

 come si fa a far fare i conti al db e non al php??
Guardati il manuale del DB: hai tutte le funzioni che vuoi per manipolare
le stringhe, per lavorare con numeri, date ....
Ciao
--ev