Thread Insert bei vielen Feldern.... (15 answers)
Opened by zipster at 2006-01-17 16:28

Strat
 2006-01-19 17:19
#6668 #6668
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
also wenn das mapping 1:1 ist, koenntest du auf die mapping-tabelle verzichten und z.B. mit einer Liste arbeiten:
Code: (dl )
1
2
3
4
5
6
7
8
9
my @fields = qw(nachname vorname adresse ort);
my $cgi = CGI->new();
my %params = $cgi->Vars();

my $sql = 'INSERT INTO tabelle ('
. join(', ', @fields)
. ') VALUES ('
. join(", ", map { $dbh->quote( $params{$_} ) } @fields )
. ')';

nur wuerde ich auf die Liste der DB-Felder nicht verzichten, weil es fuer einen Benutzer ja ein leichtes ist, weitere HTML-Felder hinzuzufuegen


qq~...~ oder qq/.../ oder qq{...} usw. enspricht "..."
q~...~ oder q/.../ oder q{...} usw. entspricht '...'
nur darf das trennzeichen dann in der zeichenkette nicht vorkommen.

wenn ich Zeichenketten habe, in denen z.B. " oder ' vorkommen, verwende ich lieber keine Anfuehrungszeichen, sondern qq oder q, damit ich die " bzw. ' im String nicht zu escapen brauche. In dem Fall von oben waere es egal, weil ja im String selbst keine Anfuehrungszeichen vorkommen.

Damian Conway empfiehlt im Buch "Practial Perl" uebrigens q{...} oder qq{...}

zur Gueltigkeit: wenn informationen von extern kommen (z.B. von einem Benutzer), kann der da auch (absichtlich oder unabsichtlich) beliebigen Schrott eingeben, oder Pflichtfelder nicht befuellen.
Wenn z.B. eine Datumseingabe nicht im korrekten Format ist, fliegt einem wahrscheinlich das SQL um die Ohren. Meist ist es jedoch besser, die Daten vorweg zu ueberpruefen und bei Fehlern dem Benutzer die Moeglichkeit zu bieten, die falschen Eingaben zu korrigieren.
Oder wenn der Benutzer eine Email-Adresse eingeben soll und einfach reinschreibt: "keine", dann koennte es spaeter mal unnoetig probleme bereiten, wenn man versucht, an diese Mailadresse eine Mail zu senden.
oder wenn eine zahl erwartet wird und jemand schreibt rein "nix" ...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Insert bei vielen Feldern....