Thread Verzeichnis rekursiv auslesen und in Datenbank schreiben (39 answers)
Opened by Anton at 2012-05-15 08:38

Gast Anton
 2012-05-15 09:54
#158364 #158364
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

View full thread Verzeichnis rekursiv auslesen und in Datenbank schreiben