Are you sure it's getting to the execute call? You should be checking the err() and errstr() methods on your handles to get database specific error messages.
I can't really do that because the interpreter just goes away during the execute call. I have watched it happen with the debugger. The Perl job just exits with no message or anything. It's really strange.