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

Strat
 2006-01-18 19:29
#6666 #6666
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
am anfang baue ich eine mapping tabelle. dafuer verwende ich einen hash, dessen keys die feldnamen der html-form sind und dessen values die dazugehoerigen felder in der datenbank sind, also was in folgendem feld eingegeben wurde
Code: (dl )
<input type="text" name="counter" />

soll in die db-spalte count.

nun wird ein neues cgi-objekt erzeugt, und die parameter der html-form in einen Hash namens %params eingelesen:
Code: (dl )
1
2
my $cgi = CGI->new();
my %params = $cgi->Vars();

ich habe also in $params{counter} den wert fuer die DB-Spalte count; auf den namen "count" komme ich z.B. ueber $mappings_form2db{counter} dran.

Bei keys %hash (bzw. values) %hash wird eine liste der schluessel (bzw. werte) in irgendeiner reihenfolge zurueckgegeben. Perl selbst garantiert lediglich, dass (sofern man den hash nicht veraendert) keys und values dieselbe (zufaellige) reihenfolge zurueckgeben, also kann ich mir mit values(%mappings_form2db) die ganzen db-spaltennamen in irgendeiner beliebigen reihenfolge zureckgeben lassen, und ebenso ueber keys(%mappings_form2db) die namen der werte (sind die keys von %params), und zwar in derselben reihenfolge.
Code: (dl )
1
2
3
4
5
map {
$dbh->quote( # ein wenig sicherheit, escape SQL-Sonderzeichen
$params{$_} # $_ ist key, also wert des entsprechenden feldes
)
} keys %mappings_form2db # gibt also die liste der keys fuer %params zurueck



wird's jetzt ein wenig klarer? wenn nicht, frag einfach
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Insert bei vielen Feldern....