PhpMyAdmin
Fra Wikipedia, den frie encyklopædi
phpMyAdmin er den korrekte titel på denne artikel (Titlen vises forkert på grund af tekniske begrænsninger.) |
phpMyAdmin er en browser-baseret samling af PHP scripts, der benyttes til at redigere MySQL databaser. PhpMyAdmin medfølger ofte automatisk ved oprettelse af et PHP webhotel med tilhørende MySQL. Dansk er et muligt brugersprog. Udviklingen af phpMyAdmin sker som et open source projekt og der foregår løbende opdateringer.
PhpMyAdmin hjælper med at danne de nødvendige SQL-kommandoer, som er de eneste "ordrer" databasen forstår. Det giver en bedre brugergrænseflade og betyder, at brugeren i højere grad kan fokusere på opdateringer, dannelsen af indeks m.m.
Hvis en bruger har oprettet et webhotel er der som regel kun én database tilknyttet, men denne kan tilføjes et stort antal tabeller, i praksis kun begrænset af størrelsen på webhotellet, f.eks. 10 MB eller 500 MB (MegaBytes). Hvis phpMyAdmin benyttes på egen server, f.eks. egen computer, hvor PHP og MySQL er installeret, er der mulighed for at oprette flere databaser.
[redigér] Adgang til phpMyAdmin
Hvis det er angivet, at phpMyAdmin er tilknyttet, findes den ofte på mysql00.webhotelnavn.dk (uden www) eller på phpmyadmin.webhotelnavn.dk. Placeringen af phpMyAdmin oplyses af webhoteludbyderen. Ved start vil der som regel bedes om et brugernavn og adgangskode, som udbyderen også vil have fremsendt.
[redigér] Startbillede
PhpMyAdmin benytter en to-opdelt ramme (frame på engelsk) til at adskille oversigten over tabeller til venstre (hvis der er nogle) og selve hovedteksten. Hovedteksten kan bl.a. indeholde velkomstbilledet, en oversigt over alle tabeller, strukturen i en enkelt tabel eller en oversigt over alle poster i en tabel.
Startbilledet indeholder hilsenen "Velkommen til phpMyAdmin 2.8.1 - MySQL 4.2. kører på mysql04.webhotel.dk som bruger@mysql04.webhotel.dk". Nedenunder er der forskellige funktioner til oplysning om selve databasen m.m. Disse er mindre relevante i første omgang.
[redigér] Oversigt over databasen
Efter startbilledet kan man vælge en (eller den eneste) database og herefter fremkommer en oversigt over alle databasens tabeller og øverst er der en "struktur-menu" (en oversigt over en database og dets tabeller, og herunder dets indbyrdes relationer betegnes ofte som et skema)
Hvis der allerede er tabeller oprettet vil de kunne vælges herfra. Der kan også søges m.m.
[redigér] Opret den første tabel
Ved at klikke på database-navnet i venstre ramme kommer der en ny side, hvor der i bunden er et område, hvor der står "Opret ny tabel i database mindatabase_com (opdigtet navn)". Tabellen skal navngives med et unikt navn, der ikke er brugt før og antallet af felter skal angives. Det er i første omgang ikke så vigtigt at have overblik over, hvor mange felter man har brug for, da der senere, på fleksibel vis, kan tilføjes flere efter behov.
[redigér] Bestem tabellens forskellige feltnavne og datatype
Efter oprettelse af tabellen er der en ny side, hvor alle felterne skal navngives (første kolonne) og deres datatype skal defineres (anden kolonne).
Det er anbefalelsesværdigt, at give de forskellige felter unikke navne, der muligvis forbindes til den tabel de findes i. Det skyldes, at et relationelt databasesystem som regel vil hente data fra forskellige tabeller, og der vil opstå fejl, hvis man forsøger at hente "nr" fra tabel 1 og "nr" fra tabel 2. Det er bedre med f.eks. "tab1_nr" og "tab2_nr" (hvis man ønsker at fastholde de samme feltnavne i forskellige tabeller er det nødvendigt ved SELECT at identificere, hvilken tabel man henviser til, f.eks. tabel1.nr og tabel2.nr).
Datatypen er i udgangspunktet "varchar", der har betydningen "et variabelt antal karakterer". Hvis feltet skal bruges til tekst bestående af højst 255 bytes er "varchar" løsningen. Længden angives i 3. kolonne. I mindre databaser er det ikke afgørende om tallene er optimeret til behovet. Det er i øvrigt kun i "varchar" at længden skal angives. De andre datatyper er automatiske, men enkelte af dem kan specificeres.
- Nr. 2 mulighed er "tinyint", der kun går fra 0-127. Er ofte kilde til fejl, hvis man undervurderer behovet for antallet af rækker.
- Nr. 3 "Text" benyttes ofte til længere tekster, men der findes variationer som "tinytext" og "longtext".
- Nr. 4 "Date" er et datoformat. Skal ikke forveksles med "timestamp", der indsætter (serverens) dato og tidspunkt for, hvornår den aktuelle række senest er blevet ændret.
Disse datatyper vil dække de flestes behov.
[redigér] Bestem felternes øvrige definitioner
- Attributter er for mere avanceret brug og omhandles ikke her.
- Nulværdi benyttes til at vælge det temmeligt interessante "NULL" begreb. "NULL" betyder at feltet er tomt eller ukendt, ikke at det er nul, som jo er en værdi. Det er ikke alle datatyper, der kan være "NULL", så det er værd at prøve sig lidt frem.
- Startværdi kan være "NULL", dvs. at det ikke er nødvendigt altid at få udfyldt dette felt i den aktuelle række.
- Ekstra indeholder kun muligheden for "auto_increment" og det betyder, at nummerering kan foregå automatisk. Det er meget brugbart, hvis ikke man ved, hvor mange poster man når at oprette, men at det er vigtigt at de har unikke identifikationer.
- Primær bruges til at identificere, hvilket felt, der skal bruges til gøre hver enkelt række unik. Det er ofte et nummer, som det ovenstående brugernumre.
- Indeks er det vigtigste redskab til at opnå et fuldt optimeret og velfungerende database. Princippet er at en indeks hjælper med at sortere de forskellige rækker således at f.eks. søgninger vil kunne foregå hurtigere. MySQL skaber og opdaterer disse indeks automatisk. Det er dog ikke sådan, at ethvert indeks er nødvendigt og det kan også give bagslag at bruge for mange indeks, men baggrunden for dette vil kræve en grundigere forklaring end der er mulighed for her.
- Unik refererer til om et felt er unikt i den samlede databasestruktur, f.eks. som i de ovennævnte eksempler med at benævne "nr" og "nr" i forskellige tabeller. Unik vil indikere, at dette ikke forekommer. Kan bruges som en sikkerhedsforanstaltning.
- Fuldtekst indeks benyttes når det er et helt tekstfelt der skal indekseres til brug ved f.eks. søgning.
"Tabelkommentarer" og "Tabel type" er mere avancerede funktioner, som de fleste begyndere ikke vil benytte.
Denne måde at oprette tabeller på er noget mere brugervenlig end at benytte SQL direkte, men der er fortsat mulighed for at tabellen ikke kan oprettes pga. fejl. Der kan således opstå behov for at eksperimentere lidt med datatyper osv. før man har held til at oprette den første tabel.
[redigér] Eksempel på oprettet tabel: Pressemeddelelser
pmnummer får automatisk et unikt nummer, hver gang der oprettes en ny pressemeddelelse (pm). pmover er pm'ens overskrift og kan højst være 255 karakterer lang.
pmresume og pmfuld er henholdsvis et resume og den samlede tekst. Hvis der ikke indsættes en værdi er feltet i den aktuelle række NULL, dvs. "tom".
pmdato følger datoformatet 20xx-mm-dd
[redigér] Indsættelse af data i en tabel: oprettelse af poster
Efter oprettelse af en tabel vil man komme til en side, der viser tabellens struktur i oversigtsform (det samme vil ske, hvis tabellen allerede er oprettet og man vælger denne ude til venstre).
Ved klik på "Indsæt" bliver de ny muligt at oprette en ny post ved at indsætte data i hvert felt. Det mulige indhold vil afhænge en del af den datatype, der er defineret. For nye brugere, der ikke har oprettet tabellen selv, vil det således kunne forårsage nogen frustration, hvis man ikke forstår de enkelte datatyper. Men har man først forstået disse skulle det være muligt at oprette rækker uden de store problemer.
Bemærk, at den tekst, der indsættes i f.eks. tekstfelter skal være HTML-formatteret for at give den ønskede effekt.
Det nedenstående billede viser, hvordan browser-vinduet ser ud efter tryk på Indsæt
[redigér] Redigering og visning af indhold i tabeller
Når en tabel er oprettet giver PhpMyAdmin en række muligheder for at vise og manipulere dette indhold.
- Vis bruges til at vise alle de poster som brugeren har oprettet. Hvis der over et vist antal poster i tabellen vises de første 30.
- Struktur giver en oversigt over selve tabellen, dets forskellige indeks m.m.
- SQL er som nævnt tidligere den kodning som databasen "forstår". Ved hver ændring gengives den aktuelle SQL, og det er den måde man kan opnå en forståelse for SQL, dvs. ved at analysere, hvordan ændringer er lavet. SQL er primært for mere øvede brugere, da selv simple SQL-ordrer kan være særdeles vidtrækkende. Fejl som ">" i stedet for "=" kan slette hele indholdet i en tabel. Forskellen mellem phpMyAdmins almindelige brugerflade og SQL er, at iphpMyAdmin ændres hver post som regel enkeltvis, mens SQL kan ændre indholdet i adskillige poster.
- Eksport kan bruges til at tage sikkerhedskopi og benytte det "database dump", der laves til at flytte tabeller m.m. til andre databaser. Se afsnit om sikkerhedskopiering
- Operationer gør det muligt at kopiere/genbruge tabeller m.m. Det er værd at notere, at man både kan flytte struktur og data eller kun strukturen.
- Tøm sletter indholdet af tabellen, ikke selve tabellen.
- Slet sletter både tabel og indhold. Der er en ekstra sikkerhedsmekanisme, men bemærk, at phpMyAdmin er et værktøj, der nemt kan have ret vidtrækkende følger ved uforsigtighed.
[redigér] Sikkerhedskopiering og lidt mere om brugen af SQL
En del webhoteller tager ikke backup af HTML- og PHP-filer og selve databasen. Derfor er regelmæssig backup afgørende, særligt hvis indholdet på ens hjemmeside ændres ofte af eksterne brugere.
Eksport i forskellige menuer kan benyttes til at lave backup af hele databasen eller enkelte tabeller. Der er to muligheder. Man kan enten få lavet et "dump" af de forskellige tabeller eller gemme det i en tekstfil. Et "dump" er den SQL-kodning, der skal til for at oprette feltnavne m.m. samt indhold. PhpMyAdmin gør det meget enkelt at lave disse dumps.
Genskabelse eller flytning til en anden database sker ved at man under menupunktet SQL enten kører en forespørgsel i tekstvinduet eller vedhæfter filen.
Bemærk at det kun er databasen, der tages backup af. Det er ikke HTML- og PHP-filerne! Disse skal downloades via ftp eller man skal have en kopi af den originale programmering.
[redigér] Sikkerhed
PHP og herunder phpMyAdmin er ikke nødvendigvis præget af den største sikkerhed. For enkeltbrugere vil det tvivlsomt være et problem, men det kan anbefales at man undersøger sikkerhedsspørgsmålet nærmere, hvis man planlægger at bygge større systemer og benytte phpMyAdmin til flere brugere.
[redigér] Eksterne links
- http://www.phpmyadmin.net Officiel side for phpMyAdmin (.com og .org er ikke officielle sider)
- http://dev.mysql.com/doc/query-browser/en/index.html MySQL Query Browser, et alternativ til phpMyAdmin
- http://wiki.cihar.com/pma/ phpMyAdmin's egen spirende wiki