in reply to perl DBI help

That error message is telling you that you can't fetch something from $sth because it didn't execute properly. What that means is that the trouble actually started earlier, and probably surfaced somewhere in either of these lines:
$sth = $dbh->prepare ($stmt); $sth->execute();
On the face of it I can't see anything wrong with your code (though other monks may be able to). My guess is something like a typo in $stmt. The easy way to find out is to edit those lines to
$sth = $dbh->prepare ($stmt) or die $dbh->errstr; $sth->execute() or die $dbh->errstr;
That may well throw some light on exactly where it's breaking down, by giving you some informative error messages. (NB if it dies on the first of these and doesn't give you an informative error message, that probably means your DB handle didn't get properly initialised in the first place - password prob?)

George Sherston