PHP verbinden met database

In het php boek staat hier ook iets over: link naar php boek

Er zijn meerdere mogelijkheden waarmee je verbinding kan maken met een database. In deze uitleg gaan we uit van het werken met mysqli. We maken gebruik van de object georienteerde variant. Er is ook een procedurale variant. Let er dus goed op als je voorbeelden zoekt op het internet dat deze van dezelfde variant gebruik maken.

Er is ook nog een PDO object in PHP. Met dit object kan je ook andere dan mysql databases benaderen. Een aardige nederlandse uitleg vind je hier

We gaan ervan uit dat je eerst de database ontwerpt en deze klaar zet via bijvoorbeeld phpmyadmin.

verbinding maken

Je moet eerst verbinding maken met de database. Dat doe je door een nieuw mysqli database object te maken. Daarvoor heb je vier variabelen nodig. De servernaam (vaak localhost, dus de server waar je op werkt), een gebruikersnaam en een wachtwoord van de database en de naam van de database die je wilt gebruiken. Je maakt immers verbinding met het databasemanagmentsysteem. In zo'n systeem kunnen meerdere databases aanwezig zijn.

$conn = new mysqli($servername, $username, $password, $database);

Vaak wordt in een lokale testomgeving root gebruikt als gebruikersnaam. Deze gebruiker heeft alle rechten in het databasemanagementsysteem. Dit is voor live omgevingen dus niet een goed idee.

Je moet altijd controleren of er geen fouten zijn ontstaan in de databaseverbinding. Dit kan ook gebeuren doordat de database zelf niet bereikbaar is. Hieronder zie je een voorbeeld hoe je dat kan doen.

if ($conn->connect_error) {
    die("Connectie mislukt: " . $conn->connect_error);
}

verbinding sluiten

Het is belangrijk dat je databaseverbindingen ook weer sluit. De server doet dit ook zelf wel als een verbinding te lang open staat zonder dat er wat gebeurt. Maar als je veel gebruikers hebt die bij elke reload een nieuwe verbinding maken zonder deze af te sluiten dan ga je wel problemen krijgen.

$conn->close();

Sluit de verbinding pas als je de database niet meer nodig hebt. Dus na het uitvoeren van alle query's.

Extra uitleg Query`s