<< Tilbage
Oprettelse af tabeller
Før vi kan begynde at indsætte og trække data ud fra en database, så skal vi først have oprettet nogle tabeller hvor dataen kan gemmes. Der findes forskellige database administrationsværktøjer (f.eks. PhpMyAdmin) som man bl.a. kan bruge til at oprette tabeller. Har du adgang til sådan et, så er der ingen grund til at gøre det manuelt som beskrevet her i tutorialen.
I php har man funktionen mysql_query() til at kaste kommandoer efter mysql-serveren. Her er et komplet eksempel der opretter en tabel i databasen (forklaringer følger):
Kode: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
|
<?php
mysql_query("CREATE TABLE personer( id INT AUTO_INCREMENT, navn VARCHAR(50), alder INT(3), email VARCHAR(50), PRIMARY KEY(id) )") OR DIE(mysql_error());
?>
|
Inde i mysql_query() står selve MySQL-kommandoen, der beskriver at en tabel skal oprettes. Læg mærke til at de såkaldte reserverede ord i MySQL er skrevet med store bogstaver, mens de andre er skrevet med små bogstaver (feltnavne osv.).
CREATE TABLE personer fortæller at den skal oprette en tabel i databasen med navnet "personer". Inde i parentesen er selve tabeldefinationen (hvordan skal den se ud, hvilke felter skal den have?).
id INT AUTO_INCREMENT fortæller flere ting på én gang. Der tilføjes et felt i tabellen med navnet "id". Først skrives navnet på feltet, efterfulgt af hvilken felttype feltet skal have. INT er en forkortelse af integer (heltal), så det er altså tal vi ønsker at bruge i id-felterne. AUTO_INCREMENT kan bruges til automatisk at få id-feltet til at lægge 1 til, hver gang vi indsætter en ny række i tabellen. Den første række får automatisk værdien 1 i id-feltet, den næste 2 osv.
navn VARCHAR(50) Her opretter vi endnu et felt i tabellen, her med navnet "navn". Felttypen er sat til "varchar" og i den efterfølgende parentes er der angivet hvor mange tegn feltet maksimalt kan indeholde. Da vi oprettede id-feltet angav vi ikke sådan en værdi, så den vil i stedet benytte det som er standard for en INT.
I de næste to linjer opretter vi endnu to felter med navnene "alder" og "email".
Til sidst fortælller vi med PRIMARY KEY(id) at feltet id skal være den primære nøgle. Dvs. hver række bruger feltet id som unik identifikator, hvor ikke to rækker i tabellen kan have den samme værdi i id-feltet. Husk altid at definere hvilket felt der skal bruges som primær nøgle. Findes der ikke et enkelt felt der med sikkerhed kan adskille rækkerne i tabellen, så kan man konstruere en primær nøgle ud fra flere felter, f.eks.: PRIMARY KEY(navn, email)
OR DIE(mysql_error()) sørger for at vi kan se på skærmen hvad der er galt, hvis det ikke lykkedes for MySQL at oprette tabellen.
Er du i tvivl om hvilke felttyper du skal bruge til hvilke formål, så er der her en lille oversigt over de meste brugte:
Felttype |
Formål |
INT |
Bruges til heltal (f.eks. 5 og 999) |
DATETIME |
Bruges til at gemme tidspunkter med både dato og klokkeslæt i formatet YYYY-MM-DD HH:MM:SS |
DATE |
Gemmer kun en dato, i formatet YYYY-MM-DD |
VARCHAR |
En almindelig streng med en max. længde på 255 tegn. |
TEXT |
Til større tekststykker. |
LONGTEXT |
MEGET store tekststykker. Maks. længde er 4294967295 tegn. |
DOUBLE |
Et tal med decimaler |
|