Leser: 24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#!/usr/bin/perl use 5.010; use warnings; use strict; use utf8; use DBI; my $table = 'Table_simple'; my $dbh = DBI->connect( "DBI:CSV:" ); $dbh->do( "CREATE TABLE $table( Nachname CHAR(64), Vorname CHAR(64), Telefon INTEGER ) )" ); my $sth = $dbh->prepare( "INSERT INTO $table( Nachname, Vorname, Telefon ) VALUES(?,?,?)" ); while ( <DATA> ) { chomp; my( $Nachname, $Vorname, $Telefon ) = split /,/; $sth->execute( $Nachname, $Vorname, $Telefon ); } $sth->finish; $dbh->disconnect; __DATA__ Nachname,Vorname,Telefon Kunz,Helga,123456789 Maier,Anton,987654321 Müller,Franz,
Guest GastKann ich hier zwischen "my $table = 'Table_simple';" und "$sth->finish;" noch irgendetwas weglassen, ohne dass es dann nicht mehr funktioniert?
my $dbh = DBI->connect( "DBI:CSV:" )or die "Cannot connect: $DBI::errstr";
2009-12-16T13:13:34 GwenDragonWeil für ein Programm, das später mehr kann, in die Produktion geht, eine eigene Behandlung der Fehler sinnvoller sein kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#!/usr/bin/perl use 5.010; use warnings; use strict; use DBI; use utf8; my $table = 'Table_test'; open my $fh, '>:encoding(utf8)', $table or die $!; while ( my $row = <DATA> ) { print $fh $row; } close $fh or die $!; my $dbh = DBI->connect( "DBI:CSV:" ); my $sth = $dbh->prepare( "SELECT * FROM $table ORDER BY nachname" ); $sth->execute(); while ( my $hr = $sth->fetchrow_hashref() ) { say "$hr->{vorname} $hr->{nachname} $hr->{telefon}"; } $dbh->disconnect; __DATA__ nachname,vorname,telefon Kunz,Helga,123456789 Maier,Anton,987654321 Müller,Franz,897987908
Guest GastCode (perl): (dl )1 2 3 4 5 6#!/usr/bin/perl while ( <DATA> ) { chomp; my( $Nachname, $Vorname, $Telefon ) = split /,/; $sth->execute( $Nachname, $Vorname, $Telefon ); }
1 2 3 4 5
while (my $line = <DATA>) { chomp $line; my( $Nachname, $Vorname, $Telefon ) = split /,/, $line; $sth->execute( $Nachname, $Vorname, $Telefon ); }