Hallo zusammen,
folgendes Problem bereitet mir Kopfschmerzen:
Ich habe ein Perl-Script geschrieben, was meiner Meinung nach fehlerfrei läuft, jedoch kommt in meiner Datenbank nichts von den im mysql-log stehenden UPDATE-Befehlen an. Woran kann das liegen?
Hier das Script:
__________________________________
#!/usr/bin/perl -w
use strict;
use DBI;
use CGI;
use CGI::Carp 'fatalsToBrowser';
print "Content-type:text/html\n\n";
my ($i, $x) = 0;
my (@termine, @zeile1, @zeilen) = "";
my ($z, $line, $termin, $dbh, $sth);
my ($datum1, $zeit1, $kirche, $ort, $titel, $text, $email);
open (DATEI, "< ../../ki-ver.htm") or die "Kann Datei ki-ver.htm nicht öffnen: $!\n";
while ($line=<DATEI>) {
$x++;
$line = "<b>$line</b>" if ($x==2);
$termine[$i] = "$termine[$i] $line"; # Veranstaltungen in @ einlesen
if ($line =~ /^\n/s) {
$i++;
$x = 0;
next
}
}
close DATEI;
$dbh = DBI->connect ("DBI:mysql:host=localhost;database=test", "", "", {PrintError => 1, RaiseError => 1});
#, "irgendwas", "irgendein Passwort", #
$i = 0;
foreach $termin(@termine) {
@zeilen = split(/\n/, $termin);
@zeile1 = split(/, /, $zeilen[0]);
$email = $zeile1[0] if($zeile1[0] =~ m/<*?>/);
$email =~ s/>.*//g;
$email =~ s/<///g;
print "email: $email, ";
$datum1 = substr($zeile1[1], 6, 4);
$datum1 .="-";
$datum1 .= substr($zeile1[1], 3, 2);
$datum1 .="-";
$datum1 .= substr($zeile1[1], 0, 2);
print "datum1: $datum1, \n";
$zeit1 = substr($zeile1[2], 0, 2);
$zeit1 .=":";
$zeit1 .= substr($zeile1[2], 3, 2);
print "zeit1: $zeit1<br>\n";
for ($x=3; $x<=@zeilen; $x++)
{
$zeilen[2] .= "$zeilen[$x]";
}
print "Inhalt: <b>$zeilen[1]</b><br>$zeilen[2]\n<br><br>";
$dbh->do("UPDATE veranstaltungen SET datum1='$datum1', zeit1='$zeit1', kirche='$zeile1[3]', ort='$zeile1[4]', datum2=NULL, zeit2=NULL, titel='$zeilen[1]', text='$zeilen[2]', email='$email' WHERE id='$i'");
$i++;
}
$dbh->disconnect ();
exit(0)
__________________________
Schon im voraus Danke für Eure Hilfe
Regards
Axel