FAQ |
Kalender |
2011-02-28, 18:05 | #1 | ||
|
|||
Flitig postare
|
Jag skapade en site åt en kund för ett tag sen där jag använde mysql_pconnect för att koppla upp till databasen. Siten fungerade som den skulle under en tid för att helt plötsligt sluta fungera. Ett felmeddelande visades om att det inte gick att koppla upp till databasen, vilket tydde på att felet låg hos webbhotellet.
Felet verkade ligga hos webbhotellet, så jag tog kontakt med dem och det visar sig att de nyligen har ändrat så att de inte längre tillåter siter att koppla upp till respektive databaser via mysql_pconnect. Detta betyder en hiskeligt massa extrajobb för mig för att få siten att fungera igen (måste byta ut alla mysql_pconnect till mysql_connect och stänga databasuppkopplingarna efteråt). Känns inte direkt säkert att ha med dem att göra igen, tänk om de börjar hindra andra funktioner som belastar deras system i framtiden. Hoppas de nu blir nerringda så att de också får lida för detta. |
||
Svara med citat |
2011-02-28, 18:48 | #2 | |||
|
||||
Bara ett inlägg till!
|
Persistent connections är något som brukar vara avstängt på webbhotell då det tar enorma resurser i anspråk på databasservrarna utan någon märkbar skillnad i laddningstid.
Du måste inte stänga databasuppkopplingarna efter dig i PHP; det sköter PHP automatiskt när skriptet avslutas. Det normala brukar vara att man lägger databasuppkopplingen i en fil som man sedan inkluderar på andra sidor, så då är det bara ett ställe att ändra på. Jag tror att även City network utgått från detta när de gjorde ändringen. Jag tycker också det är dåligt av dem att stänga av det utan att först kolla vilka som använder det och kontakta dessa kunder. Kräv kompensation, till exempel i form av en gratis månad eller liknande. |
|||
Svara med citat |
2011-02-28, 19:00 | #3 | ||
|
|||
Flitig postare
|
Citat:
Detta skulle i och för sig inte vara så jobbigt eftersom jag använder dreamweaver och kan infoga en uppkoppling innan varje anrop. Slipper jag stänga uppkopplingen efteråt så skulle det underlätta väldigt mycket. |
||
Svara med citat |
2011-02-28, 19:07 | #4 | |||
|
||||
Bara ett inlägg till!
|
Jag tycker att du verkar ha ett väldigt rörigt upplägg av din kod (eller missförstår jag något i det du skriver?). Inte behöver du koppla upp till databasen innan varje anrop; det räcker med en gång per sidladdning.
Gör en fil som du kanske kallar för 'sqlconnect.php' där du kopplar upp till databasen. Denna fil inkluderar du högst upp på de sidor som ska göra databasanrop (eller i alla sidor). Därefter kan du köra hur många databasfrågor du vill över den uppkopplingen. PHP avslutar automatiskt uppkopplingen när sidan är klar. Använder du require_once eller include_once så kommer filen dessutom bara att inkluderas en gång per sidladdning, ifall du har svårt att hålla reda på om den inkluderats eller inte. |
|||
Svara med citat |
2011-02-28, 19:23 | #5 | ||
|
|||
Supermoderator
|
Måste instämma med Emil. Har du en vettig kodstruktur så innebär det inget direkt arbete för dig att göra denna ändring. Råkar du ha kodat tokigt så kan du köra en enkel search and replace. Tycker det är helt korrekt agerat av City Network att stänga av denna funktion. Däremot bör man givetvis ha informerat sina kunder om det i förväg, att de inte gjort det är ytterst märkligt.
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
2011-02-28, 20:45 | #6 | |||
|
||||
Mycket flitig postare
|
||||
Svara med citat |
2011-02-28, 21:04 | #7 | ||
|
|||
Administratör
|
Citat:
I en delad hosting-miljö vet du inte tillräckligt om situationen för att kunna avgöra om persistant connections ger någon som helst fördel eller bara nackdelar. Jag skulle till och med vilja påstå att det _aldrig_ på en sajt i en delad hosting-miljö finns anledning att överväga persistant connections. Vidare föreslår jag att du skaffar en vettig editor, eller extra verktyg, med en enkel search and replace i filer (google "search and replace in files" borde ge dig en del resultat på de första sidorna). Byter du ut alla pconnect mot connect så får du inga problem alls förutsatt att din sajt inte är extremt ineffektivt skriven i övrigt. Anslutningarna stängs nämligen (som andra redan informerat) så fort ditt script exekverats färdigt.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2011-02-28, 23:21 | #8 | ||
|
|||
Flitig postare
|
Jag har endast en pconnect, skulle jag kunna byta ut den mot en connect då menar du?
|
||
Svara med citat |
2011-03-01, 08:07 | #9 | ||
|
|||
Administratör
|
Ja, så länge du inte stänger anslutningen är den öppen under hela scriptets exekveringstid. Skillnaden mot pconnect ligger först efter det.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2011-03-01, 08:35 | #10 | ||
|
|||
Bara ett inlägg till!
|
Citat:
Jag tycker att City Network har gjort rätt beslut, men de bör informera alla sina kunder i god tid innan! |
||
Svara med citat |
Svara |
|
|