Compusa skrev:
aasah skrev:
Om man nu håller på med en applikation med så många samtidiga anslutningar att man slår i taket och måste stänga anslutningen så snart det bara går, så är det naturligtvis en annan sak. Men för att det ska vara någon vits måste anslutningen då stängas före det sista skriptet gör. Behovet av detta borde dock inte tillhöra vanligheterna.
Varför inte lära sig att göra rätt från början, istället för att slarva bara för att det är möjligt? Enligt din filosofi så kör man på tills det går åt skogen? När det gåt åt skogen får man sätta sig och skriva om all kod så att den använder databaskommunikationen på ett optimalt sätt. Ändringar av befintligt kod leder i stort sett alltid till uppkomst av nya problem och det kan leda till en tidskrävande process, helt i onödan.
Hmm... :o :r :l Jag förstår kommentaren... Det lät nog så. Fast det var inte menat så. Nej, naturligtvis slarvar man inte bara för att det går. Naturligtvis kör man inte tills det går åt skogen. Man sätter sig ner och skriver så bra kod man kan - och tycker är motiverat - från början.
Jag tror att man har en god uppfattning om huruvida antalet databashandtag riskerar att ta slut om man inte optimerar koden, i de fall detta är tillämpligt. Är man i det läget kan nog koden behöva optimeras rent allmänt dessutom. Då programmerar man för det. Men i normala loginskript är nog inte risken så stor. Skillnaden är då att man kan låta bli att stänga anslutningen, så länge man vet att man kan stänga den förhand om det behövs.
Compusa skrev:
Jag tycker snarare att det är ditt försök till jämförelse som är larvig. Har du programmerat applikationer i Java med databaser? Även där bör du stänga ditt recordset och connection manuellt för att frigöra minne, även om Javas skräphanterare tar hand om dessa. Likadant i .net!
Det har jag, ja, och självklart stänger jag de anslutningarna, på samma sätt som jag alltid stänger en fil som jag har öppnat. Varför? Dels därför att man faktiskt kan råka ut för trassel annars, dels därför att man inte har en aning om när Javas skräphanterare stänger den annars, det kan inte jag påverka.
I PHP, däremot, så som jag har förstått det, stängs en db-anslutning alltid så snart skriptet har kört klart. Och då är skillnaden mellan att stänga den på sista raden och att inte stänga den näst intill obefintlig, anser jag. Vari ligger skillnaden? Ett par millisekunder tidigare?
Och specifikt argumentet att det inte funkar så i andra språk, vidhåller jag är knasigt. Om det är enda skälet, så måste vi ju börja deklarera alla variabler i PHP, för så "gör man ju i andra språk". Hur ett visst problem löses, beror ju på vilket programmeringsspråk man väljer. Man måste kunna anpassa lösningen efter språket, inte skriva samma sak på samma sätt i alla språk.