Kom ihåg mig?
Home Menu

Menu


City Network förbjuder mysql_pconnect

 
Ämnesverktyg Visningsalternativ
Oläst 2011-02-28, 18:05 #1
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Red flag City Network förbjuder mysql_pconnect

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.
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 18:48 #2
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
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.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 19:00 #3
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Citat:
Ursprungligen postat av emilv Visa inlägg
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.
På den siten så kopplade jag upp mot databasen en gång med mysql_pconnect, sen behövde jag inte göra annat än att skriva mina sql anrop i koden utan någon form av uppkoppling. Eftersom det bara finns en uppkoppling och en massa sql anrop överallt i koden så måste jag altså koppla upp mot databasen innan varje sql anrop.

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.
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 19:07 #4
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
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.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 19:23 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 20:45 #6
Jawns avatar
Jawn Jawn är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 986
Jawn Jawn är inte uppkopplad
Mycket flitig postare
Jawns avatar
 
Reg.datum: Aug 2004
Inlägg: 986
http://www.php.net/manual/en/feature...onnections.php
Jawn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 21:04 #7
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av robincox Visa inlägg
På den siten så kopplade jag upp mot databasen en gång med mysql_pconnect, sen behövde jag inte göra annat än att skriva mina sql anrop i koden utan någon form av uppkoppling. Eftersom det bara finns en uppkoppling och en massa sql anrop överallt i koden så måste jag altså koppla upp mot databasen innan varje sql anrop.

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.
Jag tror du saknar kunskap om vad persistent connections faktiskt är. Skillnaden i ditt script är inga vad gäller antalet anslutningar som måste göras per page load. Normalt sätt ska du inte stänga en anslutning förrän du gjort alla dina queries - oavsett anslutningsmetod. Undantaget är när du har bakgrundsjobb eller liknande som tar väldigt lång tid på sig att slutföras.

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.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-28, 23:21 #8
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Jag har endast en pconnect, skulle jag kunna byta ut den mot en connect då menar du?
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-01, 08:07 #9
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av robincox Visa inlägg
Jag har endast en pconnect, skulle jag kunna byta ut den mot en connect då menar du?
Ja, så länge du inte stänger anslutningen är den öppen under hela scriptets exekveringstid. Skillnaden mot pconnect ligger först efter det.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-01, 08:35 #10
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Citat:
Ursprungligen postat av robincox Visa inlägg
Jag har endast en pconnect, skulle jag kunna byta ut den mot en connect då menar du?
Finns det någon anledning till att du använder mysql_pconnect (persistant) framför mysql_connect?

Jag tycker att City Network har gjort rätt beslut, men de bör informera alla sina kunder i god tid innan!
eliasson är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
city network, mysql, php, webbhotell


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017