Die Aufgabe
6) PHP DB-Klasse (15 Punkte)
Erstellen Sie zur folgenden DB-Tabelle in einer MySQL-DB eine sinnvolle PHP-Klasse:
CREATE TABLE Artikel ( artnr CHAR(10) NOT NULL PRIMARY KEY, name VARCHAR(24) NOT NULL, wgruppe INTEGER NOT NULL REFERENCES Warengruppe (id))Die zu erstellende Klasse soll in MVC-Anwendungen sinnvoll eingesetzt werden können. Sehen Sie mindestens zwei Methoden vor: Eine zum Anlegen und eine zum Lesen aller Artikel einer Warengruppe. Außerdem gegebenenfalls notwendige Hilfsfunktionen.
Der Aufruf der Funktionen soll folgendermaßen geschehen (ohne Fehlerbehandlung):
$db = new mysqli( 'localhost', 'myUser', 'myPw', 'myDB' ); # Lesen$myArticles = ArtikelDB::findByWgruppe ($db, 4711); # Anlegen$a = new ArtikelDB ('A1234', 'Irgendwas', 456);$ok = $a -> insert ($db);Darunter steht auf dem Blatt das Gerüst class ArtikelDB { } mit viel freiem Platz.
Gesucht ist eine Klasse ArtikelDB, die zwischen PHP und der Tabelle Artikel vermittelt. Eine solche Klasse heißt DB-Klasse oder Modellklasse: Sie gehört zum Modell (M) in MVC (Model, View, Controller). Das Modell kümmert sich um die Daten, die View um die Anzeige, der Controller um den Ablauf.
Zur Tabelle: NOT NULL heißt, die Spalte darf nicht leer bleiben. PRIMARY KEY (Primärschlüssel) heißt, jede Artikelnummer gibt es nur einmal. REFERENCES Warengruppe (id) macht wgruppe zum Fremdschlüssel: Der Wert muss eine vorhandene id der Tabelle Warengruppe sein.
Die vorgegebenen Aufrufe sind der wichtigste Hinweis. Sie legen Namen, Parameter und Rückgaben fest. Die Klasse muss genau zu ihnen passen.
- Aus den Aufrufen ablesen, was die Klasse braucht.
- Attribute und Konstruktor schreiben.
findByWgruppe: vorbereiten, binden, ausführen, Ergebnis lesen.insert: vorbereiten, binden, ausführen.- Prüfen, ob die Klasse in MVC passt.