Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #3450
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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