3 von 16

Grundlagen · Kapitel 3 von 16

PHP · MySQL · HTML/CSS – Schritt für Schritt

Kapitel 2

db.php – Datenbankverbindung

Diese Datei stellt die Verbindung zur Datenbank her und wird von jeder anderen PHP-Datei ganz oben mit require_once('db.php') eingebunden. So gibt es nur eine einzige Stelle, an der die DB-Zugangsdaten stehen.

Der Code

db.php
<?php
$servername = "localhost"; 
$username = "root"; // am besten hier einen eigenen benutzer anlegen 
$password = "passwort"; 
$dbname = "webshop_otto";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8mb4", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
} catch(PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}
?>

Was passiert hier zeilenweise

  • $servername, $username, $password, $dbname – die Zugangsdaten in Variablen. Für die zertifizierung nicht root nehmen, sondern einen eigenen DB-User mit weniger Rechten anlegen (Least-Privilege-Prinzip).
  • new PDO(...) – baut die Verbindung auf. Der DSN-String enthält Host, DB-Name und wichtig: charset=utf8mb4 (sonst Probleme mit Umlauten und Emojis).
  • setAttribute ERRMODE_EXCEPTION – ohne das würden PDO-Fehler still verschluckt. So werfen sie Exceptions und man sieht sofort, was kaputt ist.
  • try/catch – wenn die Verbindung fehlschlägt (falsches Passwort, DB down), fängt catch den Fehler ab und beendet das Script mit einer Meldung.
Für die echte Produktion: das $e->getMessage() im die() zeigt technische Details öffentlich (DB-Name, User) – Sicherheitsproblem. Besser: error_log($e->getMessage()) und dem User nur "Serverfehler" zeigen. Für zertifizierung/Übung ist die Version oben okay, weil man den Fehler ja beim Entwickeln sehen will.
Merke: das Objekt heißt hier $conn. Manche Tutorials nennen es $pdo oder $db – muss überall im Projekt gleich sein.

16 Kapitel · ein Projekt

Der Codeinander Lernpfad

DEEN in Vorbereitung

Grundlagen

01GrundlagenIntro & Setup 02GrundlagenDatenbank-Schema 03Grundlagendb.php – Verbindung

Auth

04Authregister.php 05Authlogin.php 06Authlogout.php

Shop

07Shopnavbar.php 08Shopindex.php – Liste 09Shopproductdetail.php

Warenkorb

10Warenkorbcart_add.php 11Warenkorbwarenkorb.php 12Warenkorbcart_remove.php

Admin

13Adminstatistiken.php + Admin 14Admincheckout.php + Rechnung

Referenz

15ReferenzSQL-Cheatsheet 16Referenzzertifizierung-Checkliste