I'd start by looking at the Database.pm module, which appears to be something that is local to your installation.
You could add a $SIG{__WARN__} handler to print out a perl stack trace when the warnings occur to see if that gives you more information - something like:
use Carp qw(cluck);
$SIG{__WARN__} = sub { cluck(@_); }
... rest of code...
You can also enable DBI tracing (DBI->trace(3)) to see what calls are being made around the location of the warnings.
Michael
| [reply] [d/l] |
But my code is done according to the docs. I cant see whats wrong with the selectall_hashref
| [reply] |
I don't really know what might be wrong - I haven't used DBD::ASAny. But what you need right now is more information - and the steps I suggested are one way of getting that.
Michael
| [reply] |
I'm not too sure about what version it changed in, but in newer versions the number of params to selectall_hashref has changed:
Old:
$ary_ref = $dbh->selectall_hashref($statement);
New:
$hash_ref = $dbh->selectall_hashref($statement, $key_field);
To quote the man page:
This utility method combines the prepare, execute, and fetchall_hashref entries elsewhere in this document into a single call. It returns a reference to a hash containing one entry for each row. The key for each row entry is specified by $key_field. The value is a reference to a hash returned by "fetchrow_hashref". | [reply] |
This is my relevant code:
my $key_field = "ACCOUNT_ID";
my $stmt = "SELECT ea_id AS $key_field, " .
" ea_account_name AS ACCOUNT_NAME, " .
" ea_password AS PASSWORD, " .
" ea_inbox_server AS INBOX_SERVER, " .
" ea_email_address AS EMAIL_ADDRESS, " .
" ea_accept_requests AS ACCEPT_REQUESTS " .
"FROM email_account " .
" where ea_accept_requests = 'Y'";
$email_accounts = $dbh->selectall_hashref( $stmt, $key_field );
| [reply] |