Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:microblogging:step02:start [21.06.2021 17:28] – [Benutzer] sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:microblogging:step02:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Neue Klassen mit Datenbankzugriff ====== | ||
- | |||
- | Wir wollen unserem Projekt nun weitere Klassen hinzufügen, | ||
- | |||
- | Um dieses Ziel zu erreichen, // | ||
- | |||
- | ===== Die neue DB Klasse ===== | ||
- | |||
- | Passe die Datenbank Klasse in der Datei '' | ||
- | |||
- | <code php> | ||
- | class mysqldb { | ||
- | |||
- | static public $connection = null; | ||
- | private $dbobject; | ||
- | |||
- | /** | ||
- | * Constructor - connect to db, set handle attribute | ||
- | * | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | * | ||
- | */ | ||
- | |||
- | private function __construct($dbusername, | ||
- | |||
- | try { | ||
- | self:: | ||
- | self:: | ||
- | |||
- | } catch ( PDOException $e ) { | ||
- | echo ' | ||
- | exit(); | ||
- | } | ||
- | |||
- | } | ||
- | |||
- | public static function getConnection($dbusername, | ||
- | // Wenn das Objekt noch keine PDO-Instanz hat | ||
- | // wird eine erzeugt | ||
- | if(self:: | ||
- | $dbobject = new mysqldb($dbusername, | ||
- | } | ||
- | |||
- | //Und das PDO-Objekt zurückgeben | ||
- | | ||
- | } | ||
- | | ||
- | // Das Klonen dieser Instanz verhindern. | ||
- | private final function __clone () {} | ||
- | |||
- | } | ||
- | </ | ||
- | |||
- | **Anmerkungen: | ||
- | |||
- | * Die Schreibweise mit dem Doppel-Doppelpunkt ermöglicht den Zugriff auf statische Methoden und Felder, ohne ein Objekt der Klasse zu besitzen. Das benutzen wir, um in weiteren Klassen ein Datenbank-Handle zu erhalten. | ||
- | * Die Klasse selbst ist so konstruiert, | ||
- | * Außerdem verhindern wir, dass die Instanz geklont werden kann. | ||
- | |||
- | ===== Benutzer ===== | ||
- | |||
- | Nun wenden wir uns der Benutzer-Klasse zu. Diese hat zunächst vor allem die Aufgabe, zu überprüfen, | ||
- | |||
- | Erstelle im Unterverzeichnis '' | ||
- | |||
- | <code php> | ||
- | <?php | ||
- | |||
- | class bloguser { | ||
- | |||
- | protected $db; // Das DB-Handle | ||
- | |||
- | |||
- | // | ||
- | public function __construct ($dbusername, | ||
- | { | ||
- | // PDO Connection erzeugen/ | ||
- | // Objektattribut " | ||
- | | ||
- | } | ||
- | | ||
- | public function checkBlogUser ($dwusername) { | ||
- | print " | ||
- | |||
- | } | ||
- | |||
- | } | ||
- | |||
- | ?> | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ---- | ||
- | [[{}..: | ||