Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
de:entwickler:tabellenzugriffsklassen [2010/03/07 12:00] – Komplett neu erstellt mit Beispielen fasse | de:entwickler:tabellenzugriffsklassen [2012/05/12 00:43] (current) – [Wie lege ich einen neuen Datensatz an ?] thomas-rcv | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Zugriff auf Tabellen mit TableAccess ====== | ====== Zugriff auf Tabellen mit TableAccess ====== | ||
==== Wie erstelle ich ein Objekt der Klasse ? ==== | ==== Wie erstelle ich ein Objekt der Klasse ? ==== | ||
- | Für den Zugriff auf einzelne Datensätze aus Datenbanktabellen stellt Admidio die **TableAccess**-Zugriffsklasse zur Verfügung. Damit wird der Zugriff und die Pflege einzelner Datensätze erheblich vereinfacht. | + | Für den Zugriff auf einzelne Datensätze aus Datenbanktabellen stellt Admidio die **TableAccess**-Zugriffsklasse zur Verfügung. Damit wird der Zugriff und die Pflege einzelner Datensätze erheblich vereinfacht. Diese Dokumentation beschreibt Funktionen ab Version 2.2 . |
- | Die Klasse kann auf jede Datenbanktabelle angewandt werden. Willst du z.B. mit einem Datensatz der Tabelle **MeineTabelle** arbeiten:< | + | Die Klasse kann auf jede Datenbanktabelle angewandt werden. Willst du zum Beispiel |
( | ( | ||
| | ||
Line 9: | Line 9: | ||
| | ||
| | ||
- | )</ | + | )</ |
**MeineTabelle** ist der Tabellenname der Tabelle auf die Zugegriffen werden soll\\ | **MeineTabelle** ist der Tabellenname der Tabelle auf die Zugegriffen werden soll\\ | ||
**meine** ist das Spaltenpräfix der Tabelle\\ | **meine** ist das Spaltenpräfix der Tabelle\\ | ||
Line 23: | Line 23: | ||
echo $geburtstag // 1983/ | echo $geburtstag // 1983/ | ||
Daten ändern und speichern geht dann so:<code php> | Daten ändern und speichern geht dann so:<code php> | ||
- | $meinTabellenObjekt-> | + | $meinTabellenObjekt-> |
$meinTabellenObjekt-> | $meinTabellenObjekt-> | ||
Auch beim Speichern gibt es für Datum- und Zeitfelder eine Besonderheit. Hier **muss** das Datum nach [[http:// | Auch beim Speichern gibt es für Datum- und Zeitfelder eine Besonderheit. Hier **muss** das Datum nach [[http:// | ||
- | ==== Warum sind Tabellenklassen notwendig | + | ==== Wie lege ich einen neuen Datensatz an ? ==== |
- | + | Einen neuen Datensatz anlegen funktioniert eigentlich genauso, wie einen Datensatz | |
- | Die Tabellenklassen sollen den Zugriff auf die jeweilige Tabelle erleichtern und außerdem tabellenspezifische Methoden zur Verfügung stellen. Mit Hilfe der Tabellenklassen sollte es daher nicht mehr nötig sein, selber //INSERT// oder //UPDATE// Befehle erstellen | + | $meinTabellenObjekt-> |
- | + | $meinTabellenObjekt-> | |
- | Seit der Version 2.0 sind die vorhandenen Tabellenklassen überarbeitet und einige Neue hinzugefügt. Sinn der Überarbeitung war die wiederholenden Methoden, welche in jeder Klasse vorkamen in eine übergeordnete Klasse | + | $meinTabellenObjekt-> |
- | + | $meinTabellenObjekt-> | |
- | ==== Die Mutterklasse TableAccess ==== | + | $meinTabellenObjekt-> |
+ | $meinTabellenObjekt-> | ||
- | Mit Version 2.2 muss die Klasse TableAccess nicht mehr für jede Datenbanktabelle abgeleitet werden. Über den neu hinzugefügten Konstruktor in TableAccess kann nun bei entsprechender Übergabe des Tabellennamens | + | ==== Wie kann ich Änderungszeitstempel und Benutzer bequem speichern ? ==== |
+ | Die **TableAccess**-Klasse | ||
+ | Die Felder müssen wie folgt definiert sein:< | ||
+ | meine_timestamp_create | ||
+ | meine_usr_id_change | ||
+ | meine_timestamp_change | ||
- | Sollen allerdings abhängige Daten mit gelöscht oder beim Speichern bestimmte Spalten automatisch mit einem aktuellen Zeitstempel befüllt werden, so muss die Klasse abgeleitet und die einzelnen Funktionen ggf. überschrieben werden. Im Konstruktor der abgeleiteten Klasse muss dann der Konstruktor von TableAccess mit den entsprechenden Übergaben aufgerufen werden. Danach | + | Möchte man die Aktualisierung der Felder an einer bestimmten Stelle nicht vornehmen lassen, so kann man dies durch folgenden Aufruf erreichen: <code php> |
- | Ein gutes Beispiel für eine abgeleitete Klasse ist **TableGuestbook**-Klasse: | + | ==== Welche Methoden stehen zur Verfügung ? ==== |
- | <code php> | + | Folgende |
- | { | + | |
- | parent:: | + | |
- | }</ | + | |
- | Mit diesen Informationen funktionieren dann auch schon alle Methoden | + | |
* **readData** liest den entsprechenden Datensatz aus der Datenbank aus. Mit speziellen Übergaben kann hier das SQL-Statement noch verändert werden (Bsp: roles_class.php) | * **readData** liest den entsprechenden Datensatz aus der Datenbank aus. Mit speziellen Übergaben kann hier das SQL-Statement noch verändert werden (Bsp: roles_class.php) | ||
* **clear** initialisiert alle eingelesenen Daten. Die Methode kann in der spezifischen Klasse abgeleitet werden um dort dann noch weitere Daten zu initialisieren (Bsp: organization_class.php) | * **clear** initialisiert alle eingelesenen Daten. Die Methode kann in der spezifischen Klasse abgeleitet werden um dort dann noch weitere Daten zu initialisieren (Bsp: organization_class.php) |