2
0
Files
2026-01-13 10:42:20 +01:00

3.8 KiB

PHP Übungsaufgaben: PDO & File Handling

PDO Aufgaben

Aufgabe 1: Benutzerverwaltung mit PDO X

Erstelle ein Verwaltungssystem für Benutzer mit folgenden Features:

  • Datenbank benutzer_verwaltung mit Tabelle users (id, username, email, created_at, status)
  • CRUD-Operationen (Create, Read, Update, Delete) mit PDO
  • Prepared Statements für alle Queries
  • Error Handling mit try-catch
  • Pagination für die Benutzeranzeige (20 Benutzer pro Seite)

Bonusaufgabe: Implementiere eine Suchfunktion, die nach username oder email filtert.


Aufgabe 2: Transaktionen und Rollback X

Erstelle ein Bestell-System mit zwei Tabellen:

  • produkte (id, name, preis, lagerbestand)
  • bestellungen (id, produkt_id, anzahl, datum)

Implementiere eine Bestellfunktion, die:

  • Den Lagerbestand prüft
  • Bei ausreichendem Lager eine Bestellung anlegt UND den Lagerbestand reduziert
  • PDO-Transaktionen nutzt (beginTransaction, commit, rollback)
  • Bei Fehlern oder fehlendem Lagerbestand einen Rollback durchführt

File Handling Aufgaben

Aufgabe 3: Log-System (TXT) X

Entwickle ein mehrstufiges Logging-System:

  • Schreibe Logs in verschiedene Dateien: error.log, access.log, debug.log
  • Jeder Log-Eintrag enthält: Timestamp, Log-Level (ERROR/INFO/DEBUG), Nachricht
  • Implementiere eine Funktion writeLog($level, $message)
  • Erstelle eine Funktion, die die letzten N Zeilen einer Log-Datei ausliest

Bonusaufgabe: Implementiere Log-Rotation (wenn Datei > 1MB, erstelle neue Datei mit Timestamp).


Aufgabe 4: CSV Import/Export System

Erstelle ein System für Produktdaten:

  • Import: Lese CSV-Datei mit Produkten (ID, Name, Preis, Kategorie) und importiere sie in eine Datenbank
  • Export: Exportiere Datenbankeinträge als CSV-Datei
  • Validierung der CSV-Daten (Preis muss numerisch sein, Pflichtfelder prüfen)
  • Fehlerhafte Zeilen in separate fehler.csv schreiben

Aufgabe 5: XML Konfigurationsdatei (XML)

Erstelle ein Konfigurations-Management-System:

  • Lese eine XML-Konfigurationsdatei mit Datenbank-Verbindungsparametern, E-Mail-Settings, etc.
  • Schreibe eine Klasse ConfigManager, die:
    • XML mit SimpleXML oder DOMDocument parst
    • Konfigurationswerte auslesen kann (getConfig('database.host'))
    • Konfigurationswerte ändern und zurück in XML schreiben kann
  • Erstelle eine Funktion, die XML nach JSON konvertiert

Kombinierte Aufgabe

Aufgabe 6: Kontaktverwaltung mit Multi-Format Support

Entwickle eine vollständige Kontaktverwaltung:

  • Datenbank: Tabelle kontakte (id, vorname, nachname, email, telefon, firma)
  • PDO: Alle CRUD-Operationen mit PDO
  • Export-Funktionen:
    • Als CSV exportieren
    • Als XML exportieren
    • Als JSON exportieren (bonus)
  • Import-Funktionen:
    • CSV-Import mit Validierung
    • XML-Import
  • Logging: Alle Aktionen (Erstellen, Ändern, Löschen) in contacts.log protokollieren

Anforderungen:

  • Fehlerbehandlung bei allen File- und DB-Operationen
  • Prepared Statements für SQL
  • Datei-Upload für CSV/XML-Import
  • Benutzerfreundliche Fehler-/Erfolgsmeldungen

Zusätzliche Challenges

Challenge 1: Backup-System

Erstelle ein automatisches Backup-System:

  • Exportiere komplette Datenbank-Tabelle als SQL-Dump in TXT-Datei
  • Komprimiere Backup mit ZIP
  • Speichere mit Timestamp im Dateinamen
  • Alte Backups (> 7 Tage) automatisch löschen

Challenge 2: XML-Feed-Parser

Erstelle einen RSS/XML-Feed-Parser:

  • Parse einen externen XML-Feed (z.B. News-Feed)
  • Speichere relevante Daten in Datenbank
  • Aktualisiere nur neue Einträge (vermeide Duplikate)
  • Erstelle einen eigenen XML-Feed aus den DB-Daten

Hinweise

  • Nutze immer Prepared Statements für SQL-Queries
  • Implementiere ordentliches Error Handling
  • Kommentiere deinen Code
  • Teste alle Edge Cases (leere Dateien, fehlerhafte Daten, etc.)

Viel Erfolg! 🚀