hallo,

ik heb een vraag en die luidt als volgt:

is het beter om aan het begin van een pagina een mysql verbinding te openen en aan het einde van de pagina weer te sluiten?

bijv.:

<?PHP
mysql verbinding openen

include blalbla

doe blaaat

close mysql verbinding
?>

OF is het volgende beter?

bij elke handeling ( die een database vereist ) een verbinding openen en daarna meteen sluiten.

bijv.

<?PHP

include blabla

doe blaat

open mysql verbinding
--doe iets
close mysql verbinding

include blalala

open mysql verbinding
--doe iets
close mysql verbinding

?>

wat je dan dus mogelijk krijgt is dat je midden in een verbinding zit, en dat je een nieuwe 'moet' openen omdat je jezelf aan bovenstaande syntax houdt?

bijv.

open mysql verbinding
--include ( in de include zit ook een verbinding... )
close mysql verbinding

kan dit uberhaupt wel? lijkt me niet echt optimaal?
wat is beter/sneller/stom om te doen/enz.

de reden van deze vraag is als volgt:

ik ben nu bezig met een custom session handler.
in de functies open en close moet dus een database verbinding gemaakt/gesloten worden.

maar in principe heb ik al een verbinding open staan...

zou ik deze functies dan leeg kunnen laten?
de set_session_handler verwacht immers deze 2 functies... weglaten kan dus niet.

alsvast bedankt!

Waarom zou je elke keer de verbinding openen en sluiten? Een pagina is in principe (mits goed opgebouwd) in een korte tijd geladen, en de query's in nog kortere tijd uitgevoerd.
Waarom zou je dan elke keer de verbinding sluiten als je toch weet dat je nog een query doet? Dat lijkt mij niet zo logisch, er wordt wel eens gezegd dat het voor de veiligheid beter zou zijn, maar ik zie het probleem niet, omdat een query vaak maar heel kort duurt. (dan heb ik het niet over een tabel met miljoenen records)

Het is wel netjes om als je de verbinding niet meer gebruikt, deze wel te sluiten.
stel dat je een hele drukke site hebt.
( en je bent gebonden aan een maximum aantal mysql verbindingen... )

is dan methode 2 niet beter?
beter in de zin van dat meer mensen je site kan voorschotelen?

of is het dan ook niet nodig?
@oeteldonker

Stel ik open en sluit steeds verbindingen die zegge 1 seconde open staan, of ik laat hem voor 3 seconden open staan (in het echt zijn die tijden korter)

Wanneer heb jij dan minder openstaande verbindingen als 10 bezoekers ongeveer tegelijkertijd je site openen? -> Maakt dus niet zoveel uit. Als je pagina wel een lange laadtijd heeft kan het wel lonen om de verbinding elke keer te sluiten.

Je moet gewoon niet vergeten wel elke keer keurig de verbinding te verbreken met de database als je querys zijn gedaan.
ok, ik snap het!

maarrrr wat moet ik dan doen met die session functies? ( open en close )
die eigenlijk voor de db verbinding staan?

ik kan ze niet leeg laten session_handler verwacht ze gewoon!
leeg laten dan maar?
oeteldonker schreef op 19.09.2007 11:11
ok, ik snap het!

maarrrr wat moet ik dan doen met die session functies? ( open en close )
die eigenlijk voor de db verbinding staan?

ik kan ze niet leeg laten session_handler verwacht ze gewoon!
leeg laten dan maar?
Wat bedoel je daarmee? Stukje code?

Kijk ook eens naar de functie [php]mysql_pconnect[/php], die maakt een persistente verbinding met MySQL.

[edit]Permanent moest zijn persistent :)[/edit]

Reageren