Wat moet je kennen (samenvatting)

  • PDO connectie maken
  • Databaseconnectie in een apart bestand zetten
  • SELECT query uitvoeren
  • fetchAll(PDO::FETCH_ASSOC) gebruiken
  • Resultaten opslaan in een array
  • Resultaten tonen met foreach
  • Data en HTML combineren

1. PDO connectie

Uitleg
Met PDO maak je een verbinding met je database.
Deze connectie gebruik je om queries uit te voeren.
In een echt project zet je deze connectie in een apart bestand (bijv. includes/db.php) en laad je die in met require.

Wat moet je kennen

  • new PDO(...)
  • Charset utf8mb4
  • Error mode instellen
  • require 'includes/db.php';

Voorbeeld (includes/db.php)

<?php
$pdo = new PDO(
    "mysql:host=localhost;dbname=app;charset=utf8mb4",
    "root",
    ""
);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Voorbeeld (index.php)

<?php
require 'includes/db.php';
?>

Onthoud: Zet je databaseconnectie in één bestand en hergebruik die.

2. SELECT query uitvoeren

Uitleg
Met een SELECT query haal je data op uit je database.
Eerst zorg je dat je connectie beschikbaar is via require, daarna voer je de query uit.

Wat moet je kennen

  • $pdo->query()
  • Resultaat opslaan in $stmt
  • fetchAll(PDO::FETCH_ASSOC)

Voorbeeld (index.php)

<?php
require 'includes/db.php';

$stmt = $pdo->query("SELECT id, title FROM items");
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

Onthoud: PDO::FETCH_ASSOC zorgt dat je nette keys krijgt zoals 'title'.

3. Resultaten tonen met foreach

Uitleg
De opgehaalde resultaten zitten in een array.
Met foreach loop je erdoorheen en maak je HTML.

Wat moet je kennen

  • foreach ($items as $item)
  • $item['title'] gebruiken

Voorbeeld

echo "<ul>";

foreach ($items as $item) {
    echo "<li>" . $item['title'] . "</li>";
}

echo "</ul>";

Onthoud: Database → array → HTML.

Veelgemaakte fouten (kort)

1. Geen FETCH_ASSOC gebruiken

Fout

$items = $stmt->fetchAll();
echo $items[0][0];

Beter

$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $items[0]['title'];

2. foreach verkeerd gebruiken

Fout

foreach ($items as $title) {
}

Beter

foreach ($items as $item) {
    echo $item['title'];
}

3. Connectie niet apart zetten

❌ Databasecode in elk bestand herhalen

✅ Eén keer in includes/db.php zetten en require gebruiken

Video (coming soon)

Video komt eraan

Zodra de uitlegvideo beschikbaar is, wordt alleen de YouTube-ID vervangen.