Ok, so I see how I was getting the disconnect errors:
DBI::db=HASH(0x0000000)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting)...
I had:
$dbh->connect(...);
$sth->prepare("SELECT COUNT(*) FROM table WHERE col=?");
$sth->execute($var);
($count)=$sth->fetchrow_array;
$dbh->disconnect;
And I know how to correct it in long form:
$dbh->connect(...);
$sth->prepare("SELECT COUNT(*) FROM table WHERE col=?");
$sth->execute($var);
# added while()
while(($count)=$sth->fetchrow_array) { ... }
$dbh->disconnect;
but is there a better way to call it (instead of fetchrow_array()) without the while() loop since I know there will only be one row returned?
Also, if I use the while loop, then my $count is localized, so I'd instead have to assign it within the while() (or use shorthand, but complexity I'd like to get away from). |