hi,
die Exception tritt auf und $@ ist befüllt, hier mal die komplette Method
# Shop::Warenkorb methods
# Artikel in den Warenkorb
sub insert{
my $self = shift;
my $anz = shift or return;
$anz = 'otto'; # provoziere Fehler, $anz muss integer sein
my $st = qq(
INSERT INTO warenkorb VALUES(?,?,?, NOW())
ON DUPLICATE KEY UPDATE anz = $anz, datime = NOW()
);
my $sth = $self->{DBH}->prepare($st);
eval { $sth->execute($self->{SID}, $self->{URL}, $anz) };
if($self->{EVE} = $@){
$self->{ERR} = $DBI::errstr;
return;
}
else { return 1 }
}
Allerdings ist die Fehlermeldung unverständlich:
DBD::mysql::st execute failed: Unknown column 'otto' in 'field list'
Was zum Teufel passiert hier?
Setze ich direkt
eval { $sth->execute($self->{SID}, $self->{URL}, 'otto') };
erhalte ich wie erwartet ein
DBD::mysql::st execute failed: Incorrect integer value: 'otto' for column 'anz'
???