Thread Verzeichnis rekursiv auslesen und in Datenbank schreiben
(39 answers)
Opened by Anton at 2012-05-15 08:38 Code (perl): (dl
)
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 36 37 38 39 40 41 42 43 44 45 46 #!/usr/bin/perl use strict; use warnings; use File::Find; use DBI; # Verzeichnis von Kommandozeile holen my $verzeichnis = shift(@ARGV) || 'C:\xampp'; # Array für die gefundenen Dateien my @dateien; # Routine, die Dateien findet sub wanted { push @dateien,$File::Find::name # schiebe Dateinamen in Array if $File::Find::name ne "." # wenn Datei ist nicht aktuelles Verzeichnis and $File::Find::name ne ".." # Datei ist nicht übergeordenetes Verzeichnis and -f $File::Find::name; # Dateiname ist eine Datei } # Suche nach Dateien starten find(\&wanted, $verzeichnis); my $datenbank = 'auslesen'; # Name der MySQL-Datenbank my $tabelle = 'aktuellelage'; # Name der Tabelle in der DB my $spaltenname = 'Name'; # Name der Spalte in der Tabelle my $dsn = "dbi:mysql:database=$datenbank;host=localhost"; # zu Datenbank verbinden my $dbh = DBI->connect( $dsn, "root", "password", { RaiseError => 1 } ); # SQL vorbereiten my $sth = $dbh->prepare( q{INSERT INTO ? (?) VALUES (?);} ); # in Schleife Dateinamen aus Array holen for my $dateiname (@dateien) { # und SQL ausführen und Daten in Datenbank schreiben $sth->execute($tabelle, $spaltenname, $dateiname); } # von Datenbank abmelden $dbh->disconnect(); 1; Fehler: install_driver(mysql) failed: cant locate DBD/mysql.pm in @ing <@inc contains: ... Perhapt the DBD::mysql perl module hasnt been fully installed, or perhaps the capitalisation of mysql istn rigt |