phpbar.de logo

Mailinglisten-Archive

[php] wiederverwertbarer code und datenbankabfragen

[php] wiederverwertbarer code und datenbankabfragen

Andreas Demmer php at andreas-demmer.de
Die Nov 9 09:52:46 CET 2004


Daniel wrote:

> ich möchte den code eines projektes bei einigen anderen projeken
> wiederverwenden. der unterschied zwischen den projekten besteht
> hauptsächlich darin, daß die datenbankfelder anders heißen und
> deren anzahl
> sich unterscheiden.

> ich stand noch nie vor so einem problem und mich würde einfach mal
> interessieren, wie ihr sowas am geschicktesten angeht?

Hallo Daniel,

ich vermeide Inline-SQL wo immer es geht. In den meisten Fällen
verwende ich Datensatz-Objekte, die ich per Overloading mit
Feldern bestücke. Beim Speichern werden dann SQL Inserts bzw
Updates erzeugt, beim Laden halt Selects.

Die Anzahl der Felder ist somit schonmal egal, da die Queries
on-the-fly erzeugt werden, man muss lediglich die existenten
Felder kennen um keine SQL Fehler geworfen zu bekommen.

Prinzipiell sollte es recht einfach sein, eine Übersetzungstabelle
zu ergänzen, wo das Datensatz-Objekt bestimmte Feldnamen durch
Äquivalente ersetzt.

API Beispiel:

/* DB Objekt */
$db = new sqlDatenbank();

/* Speichern als INSERT */
$user = new dataset($db, DB_TABLE_USERS);
$user->username = 'foo';
$user->passwd = 'bar';
$id = $user->save();

/* später laden und UPDATE */
$user = new dataset($db, DB_TABLE_USERS, $id);
$user->passwd = 'newbar';
$user->save();

In diesem Beispiel ist die Anzahl der Spalten schonmal egal,
und der richtige Platz für die Übersetzungstabelle wären die
__get() bzw. __set() Overloading-Methoden des dataset Objekts.

Gruss,
Andreas

--
http://www.ontis.de
http://www.andreas-demmer.de



php::bar PHP Wiki   -   Listenarchive