Jeg har et ret simpelt spørgsmål der lyder på, om flere databaser i MySQL kan dele den samme PHP-fil. Jeg har nemlig et cms-system, der egentlig er det samme, men det skal blot indeholde noget forskelligt - og jeg tænkte derfor det ville være åndssvagt at uploade præcis de samme PHP-filer 5 gange, hvis der er mulighed for kun at oprette 5 databaser. :-)
Ja, det kan lade sig gøre, og jeg kan også se situationer, hvor det er anbefalelsesværdigt:
Lad os antage, at du driver x webshops, der er baseret på fuldstændigt samme system, og at du ønsker at hoste dem samme sted (fx for at kunne lave samlet statistik).
Et CMS system kan have databasens navn "hardcoded" i en enkelt fil. Hvis det er tilfældet, skal du modificere den, så den vælger den rigtige database alt efter hvor kunden kommer fra.
I så fald har du kun et sæt kode at vedligeholde. Det bliver også nemt at håndtere backups.
Du kan sagtens lave flere connections fra eet php script, og også holde dem åbne alle på een gang.
Jeg har selv gjort det flere gange for kunder der havde en database for hver kunde, men det er skod programmering at gøre det - og jeg vil seriøst advare dig mod at gøre det stunt.
Saml alt dit information til de enkelte sites i en database i stedet for at sprede dig ud på mange. Der er ingen ide eller formål i at sprede sig, med mindre du har et site der VIRKELIG stort.
Hej, og mange tak for alle svarene! Jeg står i den sistuation, at jeg har et CMS system på min server, hvor jeg tilbyder at oprette forskellige virksomheder. I systemets config fil, skal man jo angive en database - så forslaget om at samle alle informationerne i en enkelt database fungerer desværre ikke.
Jeg tænker lidt på at kombinere det med et login, så brugernavnet angiver, hvilken database informationerne skal hentes fra, er dette muligt?
acore: Jeg vil meget gerne høre mere om hvordan man angiver hvilken database den skal hente informationer fra, alt efter hvor man kommer fra.
arne_v: Jeg må nok erkende, at jeg i første omgang ignorerede dit svar, da det egentlig lidt var at besvare spørgsmålet, men spørgsmålet selv. Nej, jeg ved ikke hvordan PHP-scriptet skal vide hvilken database det er den skal hente informationer fra, og det er derfor jeg spørger her inde. Som tidligere skrevet kunne jeg forestille mig, at man kunne finde ud af noget, så brugernavnet passer sammen med navnet på databasen, som php-filen skal lave udtræk fra.
Hvordan vil du lave "logik i min PHP kode, så den bruger den rigtige config"? :-)
Hvis du kan beskrive logikken for hvordan koden skal bestemme hvilken database der skal bruges naar jeg sender en request fra min PC, saa kan vi komme med ideer til hvordan det implementeres. Men vi kan ikke forklare dig hvordan din app skal virke.
Jeg må være ærlig og sige, at PHP kodning ikke lige er min stærkeste side - men jeg ved derimod en del om databaser. Jeg har ikke brug for hjælp til min app overhovedet, og set i bakspejlet skaber det nok bare mere forvirring at jeg nævnte det i starten.
Lad os nu antage, at dette system overhovedet ikke har noget med en app at gøre - det er altså "blot" en hel almindelig hjemmeside - så slipper vi for det problem for denne gang! :-)
Selve databasen indeholder ikke et brugernavn/password, det er blot til adgangen via phpMyAdmin. Den rigtige database vil jeg få fat i, ved at nævne brugerens ID/kundenavn, kald det hvad du vil.
Lad os antage, at en person logger på cms'et med følgende oplysninger: b: 12345 k: xxxxx
Så vil jeg høre, om det er muligt, at min tilslutning til databasen vil ligne noget i stil med: <?php $db_host = "localhost"; $db_name = "echo "".$row['userid']."";"; $db_user = "user"; $db_pass = "pass"; ?>
.. hvor 'userid' naturligvis vil være 12345 fra tidligere nævnt eksempel. Igen, php er ikke min skarpe side ;-)
1 faelles database som alle skal verficeres imod ved login N databaser for content som der skal vaelges udfra login
??
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.