in reply to Having issues with DBI

You're not checking the return code from connect(). I bet you aren't actually connecting. Do you have strict and warnings on?

Replies are listed 'Best First'.
Re^2: Having issues with DBI
by Narveson (Chaplain) on Dec 11, 2008 at 06:16 UTC
    You're not checking the return code from connect().

    {RaiseError=>1} takes care of that.

      No, it doesn't. It only takes care of errors from methods called on the returned handle. You always have to check the return value of connect with or die $DBI::errstr.
        connect has died on RaiseError since 0.91
        use strict; use warnings; use DBI; my $dbh = DBI->connect('dbi:Oracle:xxxReal_databasename', 'xxxReal_use +r', 'bad_pasword', { PrintError => 0, RaiseError => 1, }); print "Got Here\n"; $dbh->disconnect(); OUTPUT: > ./tst DBI connect('XXXXX','XXXXX',...) failed: ORA-01017: invalid username/p +assword; logon denied (DBD ERROR: OCISessionBegin) at ./tst line 8
        Though you have to be careful about (so maybe it is best to add the "or die" regardless)...(and I say this because I've done nearly this, and not yet learned from my mistake):
        use strict; use warnings; use DBI; my $dbh = DBI->connect('dbi:Oracle:xxxReal_databasename', 'xxxReal_use +r', 'bad_pasword', { PrintError => 0, RaizeError => 1, }); print "Got Here\n"; $dbh->disconnect(); OUTPUT: > ./tst Got Here Can't call method "disconnect" on an undefined value at ./tst line 16.