Mailinglisten-Archive |
Hi, Walter Mantsch <w.mantsch_(at)_madsack.de> schrieb mir: > Wie bekomme ich Perl und MySQL zusammen? > Kann mir jemand ein einfaches Beispiel zeigen? #!/usr/bin/perl -w use CGI ':standard'; use DBI; # Datenbank-Variablen my $dbhost = 'hostname'; my $dbase = 'database'; my $dbuser = 'username'; my $dbpass = 'password'; my $dbtable = 'tabelle'; # Eintragen eines Datensatzes (wird von einem HTML-Form eingelesen # und mittels param('param') übergeben my $dbh = &connect($dbase,$dbuser,$dbpass,$dbhost,$dbtable); my _(at)_COLUMNS = get_columns($dbh,$dbtable); my %param = map(($_ => param $_), param); $statement = 'INSERT INTO ' . $dbtable . '(' . join(', ', _(at)_COLUMNS) . ') VALUES (' . join(', ', ('?')x_(at)_COLUMNS) . ');'; $dbh->do($statement, undef, _(at)_param{_(at)_COLUMNS}) or die "Couldn't insert: ", $dbh->errstr, "\n"; disconnect($dbh); # Auslesen der Datensätze my $dbh = &connect($dbase,$dbuser,$dbpass,$dbhost,$dbtable); my _(at)_COLUMNS = get_columns($dbh,$dbtable); $ary_ref = get_data($dbh,$dbtable); disconnect($dbh); # Output der Datensätze im Browser print header, start_html(-TITLE=>'Die aktuellen Treffer.', -BACKGROUND=>$background, -TEXT=>'black', -LINK=>'blue', -ALINK=>'blue', -VLINK=>'blue' ), table({BORDER=>'0', HEIGHT=>'100%', WIDTH=>'100%' }, Tr td{ALIGN=>'center'}, table( {BORDER=>'1', WIDTH=>'100%'}, Tr [ th([ _(at)_COLUMNS ]), map { my $row = $_; td [ map $row->{$_}, _(at)_COLDATA ] } _(at)_$ary_ref ], ), end_html; exit; sub connect { my ($dbase, $dbuser, $dbhost, $dbtable) = _(at)__; DBI->connect("DBI:mysql:database=$dbase", $dbuser, $dbpass, ) or die "Cannot connect to database", $DBI::errstr } sub disconnect { shift->disconnect } sub get_columns { my ($dbh, $dbtable) = _(at)__; my $COLUMNS = $dbh->selectall_arrayref("show columns from " . $dbtable) or die "Fehler beim Ermitteln der Spaltennamen\n", $dbh->errstr; map $_->[$[], _(at)_$COLUMNS; } sub get_data { my ($dbh, $dbtable) = _(at)__; my $sth = $dbh->prepare('SELECT * FROM $dbtable') or die $dbh->errstr; $sth->execute; $sth->fetchall_arrayref({}) or die $sth->errstr; } In der Hoffnung, Dir geholfen zu haben, Thomas Gericke -- Thomas Gericke - netbits computer solutions - gericke_(at)_netbits.de Schumacher & Gericke GdbR - http://www.netbits.de/
php::bar PHP Wiki - Listenarchive