Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #3450

Re: Objekt auftrennen zum speichern

From k@rl.pflaesterer.de (Karl Pflästerer)
Newsgroups de.comp.lang.php
Subject Re: Objekt auftrennen zum speichern
Date 2015-07-27 18:20 +0200
Message-ID <m17fplshbl.fsf@mbp.pflaesterer.de> (permalink)
References <mp5dn1$7b0$1@news.albasani.net> <mp5ee2$8gf$1@news.albasani.net>

Show all headers | View raw


Jan Novak <repcom@gmail.com> writes:

>> 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;
> 	
> }


Zwar wissen wir vieles nicht, was sinnvoll wäre, um dir helfen zu
können, aber nur soviel: Ich denke dein Ansatz ist einfach nicht der
Richtige, dies merkst du spätestens jetzt. Bevor du versuchst Symptome
zu beheben, kuriere lieber die Ursache (Architektur).

Nur als Beispiel: wenn man so wie du SQL zusammenbaut, ist fast immer
etwas falsch (fehlende Maskierung, das Problem mit dem Komma am Ende,
«"» als Textbegrenzer, keine Unterscheidung nach Datentyp ...).

Back to de.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-27 16:03 +0200
  Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-27 16:15 +0200
    Re: Objekt auftrennen zum speichern k@rl.pflaesterer.de (Karl Pflästerer) - 2015-07-27 18:20 +0200
      Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 08:51 +0200
        Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 09:39 +0200
          Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 10:12 +0200
            Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 10:16 +0200
              Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 10:26 +0200
                Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 11:56 +0200
                Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 12:09 +0200
                Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 12:41 +0200
        Re: Objekt auftrennen zum speichern k@rl.pflaesterer.de (Karl Pflästerer) - 2015-07-28 12:25 +0200
  Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 09:11 +0200
    Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 09:25 +0200
    Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 09:32 +0200
      Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 09:42 +0200
        Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 10:01 +0200
          Re: Objekt auftrennen zum speichern Stefan Mayer <meniskus@gmx.net> - 2015-07-28 11:51 +0200
            Re: Objekt auftrennen zum speichern Jan Novak <repcom@gmail.com> - 2015-07-28 12:18 +0200

csiph-web