## Inleiding

In dit onderdeel bespreken we hoe PHP gebruikt kan worden voor het benaderen van een database. Veel websites, bijvoorbeeld die van webwinkels, hebben toegang tot grote hoeveelheden gegevens die zijn opgeslagen in een database. Met PHP kunnen gegevens worden opgevraagd, veranderd of worden weggeschreven naar een database. We gebruiken daarvoor PHP in combinatie met MySQL. MySQL is een database system. Onder een database system verstaan we het programma waarmee bewerkingen op een database kunnen worden uitgevoerd en de database, dus de gegevens, zelf. Een programma waarmee bewerkingen op een database kunnen worden uitgevoerd, noemen we een database management system ofwel DBMS. In de interactieve module databases heb je gezien hoe je met de vraagtaal SQL (Structured Query Language) gegevens uit een database kunt opvragen. Het is mogelijk om SQL-opdrachten in combinatie met PHP te gebruiken om gegevens uit een database op te vragen in een webpagina of vanuit een webpagina weg te schrijven naar een database.
Voor MySQL zijn diverse programma’s beschikbaar waarmee de database benaderd kan worden. Het meest gebruikte DBMS voor MYSQL is phpMyAdmin. In phpMyAdmin kan een database, inclusief de daarbij behorende tabellen, worden aangemaakt. Daarnaast is het mogelijk om allerlei bewerkingen op de database uit te voeren en de rechten van gebruikers vast te leggen.

Voor het uitwerken van opdrachten gebruiken we in eerste instantie de editor van Enigma. In de online-editor zijn een aantal handelingen echter niet toegestaan. Zo mogen er géén gegevens worden weggeschreven of worden veranderd in de databases waar de online-editor mee werkt. In de online-editor worden includes en sessies niet ondersteund. Wel kunnen er data worden opgevraagd. Vanwege deze beperkingen ronden we de module daarom af met het bespreken van nog een ander voorbeeld van een omgeving waarin PHP-scripts in combinatie met een database kunnen worden uitgevoerd. We gebruiken daarvoor XAMPP. Met dit programma kun je ook zonder dat je gebruik maakt van een aparte server op je eigen pc of laptop de uitvoer van PHP-scripts bekijken. XAMPP maakt het mogelijk om PHP te gebruiken in combinatie met een eigen database. Met XAMPP loop je niet aan tegen de reeds genoemde beperkingen van de editor. Ook kun je met XAMPP met meer dan twee bestanden werken. In een bijlage bij deze module wordt de installatie en werking van XAMPP beschreven.
Voor XAMPP bestaan ook andere goede alternatieven. Bijvoorbeeld een vorm van webhosting waarbij PHP en MySQL is geïnstalleerd. Tegenwoordig is dat bij de meeste webhostingpakketten een standaardoptie.

In de PHP-editor van Enigma zijn voor deze module twee databases beschikbaar:

1. De database Nederland.
2. De database buurtvereniging.

De database Nederland bevat gegevens van de Nederlandse provincies. De database buurtvereniging gaat over leden en hun kinderen en buurtactiviteiten waarvoor kinderen zich kunnen aanmelden. In beide databases kunnen geen wijzigingen worden aangebracht. Het is dus niet mogelijk om queries uit te voeren waarbij gegevens aan de genoemde databases worden toegevoegd of worden verwijderd.
Hieronder staat het strokendiagram van de database Nederland:

De database Nederland bestaat uit twee tabellen. In de tabel provincies staan de namen van de provincies, de hoofdsteden van de provincies, van elke provincie de oppervlakte in km² en het aantal inwoners per km². In de tabel vlaggen staat voor elke provincie een verwijzing naar een afbeelding van de vlag van de provincie.

De database buurtvereniging bestaat uit vier tabellen. In de tabel leden staan de NAW-gegevens van leden van de buurtvereniging. De tabel kinderen bevat de roepnaam en de geboortedatum van kinderen van leden. In de tabel inschrijvingen worden de namen van kinderen bijgehouden die zich hebben aangemeld voor een buurtactiviteit. In de tabel activiteiten staan gegevens over activiteiten waar kinderen zich voor kunnen aanmelden.