Objekt auftrennen zum speichern

27/07/2015 - 16:03 von Jan Novak | Report spam
Hallo

ich habe verschiedene Klassen und die dazugehörigen Objekte.
Zum Beispiel:

Class A;
Class B;
Class C;

Nun kann Objekt A eine 1 zu n Beziehung zu B haben und genauso eine 1 zu
n Beziehung zu C:

Somit habe ich ein Objekt das so aussehen könnte:
A
|-B
|-B
|-C
|-C
|-C

usw.
Wenn ich dieses nun wieder auseinander nehmen will, also aus dem A Baum
nur noch "A" machen will weil die daran hàngenden B's und C's in dem
Context nicht gebraucht werden, bzw. nicht vorhanden sein dürfen.
Wie "stripe" ich das weg?

Der Hintergrund meiner Frage ist der, dass ich diese Daten in die
Datenbank schreiben will. Die Datenbankfelder haben die gleichen Namen
wie die Variablen. Ich habe mir eine generische Funktion geschrieben,
welche daraus einen SQL String baut. Jedoch dürfen keine KIND Klassen am
Objekt hàngen, sonst würde diese Funktion ja auch diese in den SQL
String einbauen).
Vorher hatte ich diese ellen langen immer wiederkehrenden Befehle:
$sql = 'insert into tabelle (feld1, ...) values (wert1, ...)
Das würde dann meine Funktion machen.


Jan

p.s. mit hoher Wahrscheinlichkeit gibt es einen besseren Weg, aber dies
ist mein 1. Versuch :-) Bin für Anregungen offen.
 

Lesen sie die antworten

#1 Jan Novak
27/07/2015 - 16:15 | Warnen spam
Der Hintergrund meiner Frage ist der, dass ich diese Daten in die
Datenbank schreiben will. Die Datenbankfelder haben die gleichen Namen
wie die Variablen. Ich habe mir eine generische Funktion geschrieben,
welche daraus einen SQL String baut. Jedoch dürfen keine KIND Klassen am
Objekt hàngen, sonst würde diese Funktion ja auch diese in den SQL
String einbauen).
Vorher hatte ich diese ellen langen immer wiederkehrenden Befehle:
$sql = 'insert into tabelle (feld1, ...) values (wert1, ...)
Das würde dann meine Funktion machen.



Ich vergaß, dies ist mein erster Ansatz:
Jedoch landen dannim SQL String auch Sachen, die nicht reingehören (weil
Sie als eine Property der Klasse A sind)


function create_insertSQL($table, $data){

if(is_object($data)){
$datalocal = dismount_local_object($data);
} else {
$datalocal = $data;
}

$sql = 'insert into '. $table . '( ';
$n=0;
foreach ($datalocal as $key => $value) {
$n++;
if (! is_array($key)) {
$sql = $sql . ' ' . $key;
if ($n<count($datalocal)) $sql = $sql . ',';
}
}

$n=0;
$sql = $sql . ') values ( ';
foreach ($datalocal as $key => $value) {
$n++;
if (! is_array($value)) {
$sql = $sql . ' "' . $value.'" ';
if ($n<count($datalocal)) $sql = $sql . ',';
}
}
$sql = $sql . ') ';
return $sql;

}



Jan

Ähnliche fragen