PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum *funct* $dbh->do("insert into ... ) nicht ?



tomes
22-10-2002, 18:46
Hier mal der Versuchsschnipsel:


#!/usr/bin/perl -w
use Date::Format;
use Date::Language;
use DBI;
use DBD::mysql;

######################
my $lang = Date::Language->new('German');
my $hallo = $lang->time2str("%e %b %Y\n", time);
my $datum = "21 Okt 2002"; # char(11)
my $name = "EICAR"; # varchar(25)
#####################
my $dbh=DBI->connect("dbi:mysql:drweb:", "xxxx", "xxxx")
or die "kann nicht auf datenbank zugreifen\n";

my $sth=$dbh->prepare("select * from infect where datum='$datum' and name='$name'");
$sth->execute();

while(my $href=$sth->fetchrow_hashref())
{
if($href->{"datum"} eq $datum && $href->{"name"} eq $name)
{
$dbh->do("update infect SET anzahl=anzahl+1");
}
else
{
$dbh->do("insert into infect (datum,anzahl,name) values ('$datum','1','$name')"); #anzahl int
}
}
$sth->finish();

my $sth1=$dbh->prepare("select * from infect");
$sth1->execute();

while(my $href=$sth1->fetchrow_hashref()) {
foreach my $k (keys %$href) {
print $href->{"$k"}," ";
}
print "\n";
}
$sth->finish();
$dbh->disconnect();

Also, alles *funct*, auch der UPDATE Teil *funct*, nur der else Teil nicht (insert into ...)
Warum nicht ? Hat jemand eine Erklaerung ?

T;o)Mes

tomes
22-10-2002, 19:11
Es liegt "natuerlich" an der select * vor den Kopf schlagen*

P.S: Und an vieles anderen ;)
Das "fertige" Script liegt im FAQ Bereich.

T;o)Mes