This has worked fine for me for some time, but lately I have encountered situations where when I execute the sub, the whole Perl script containing it goes directly to exit, no error message, nothing--just ends. I have determined in one case this happened when one of the values that was supposed to be in @values was null.sub insertsql { my ($dbh,$table,$data) = @_; my @qm; my @keys; my @values; my $i = -1; foreach my $k (keys %$data) { $i++; $keys[$i] = $k; $values[$i] = $data->{$k}; $qm[$i] = '?'; } my $keylist = join(",",@keys); my $qlist = join(",",@qm); my $sqlstatement = "insert into $table ($keylist) values ($qlist)" +; my $sth = $dbh->prepare($sqlstatement); $sth->execute(@values) || die "Could not execute MySQL statement: +$sqlstatement"; $sth->finish(); return $dbh->{'mysql_insertid'}; }
But my question is, why does it just stop rather than DIEing on the $sth->execute method and giving me the specified error message? That would make it a whole lot easier to find and correct the offending input. Have I not set it up right somehow?
TIA...Steve
In reply to DBI sudden exit on MySQL insert by cormanaz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |