use strict;
use warnings;
use DBI;

# Konfiguration lesen
open(CFG,'<', 'connect-db') or die "Oops: $!\n";
chomp(my $username = <CFG>);
chomp(my $password = <CFG>);
chomp(my $database = <CFG>);
close(CFG);

# Kommandozeile lesen: Name des Bildes, Dateipfad
die "Usage: Bildname Dateipfad\n" if ($#ARGV != 1);
my $name = shift;
my $path = shift;

# Zusammenbauen der Datasource: DBI/Modul/Datenbank/Host
my $dsn = 'DBI:mysql:'.$database.':localhost';

# Nun der Connect
my $dbh = DBI->connect($dsn, $username, $password,
		                   { RaiseError => 1,
		                     PrintError => 1,
		                     AutoCommit => 1}
		                  ) or die "Oops: $DBI::errstr\n";

# Daten einlesen, bei Windows Binmode nicht vergessen!
my $bild  = '';
my $block = '';
open (DAT,'<',$path) or die "Oops: $!\n";
binmode DAT;
while (read(DAT,$block,65536)) 
  { $bild .= $block; }
close(DAT);
# Datenbank füllen
my $sth = $dbh->prepare("INSERT INTO Bilder (Name, Bild)
                        VALUES (?,?);") or die $dbh->errstr();
$sth->execute($name, $bild)
      or die $dbh->errstr();
$sth->finish();
$dbh->disconnect();