in reply to Re^6: Can I get the actual error for DBI->execute() ?
in thread Can I get the actual error for DBI->execute() ?
By design you can't get number of rows out of a SELECT statement. You can only get a numerical result out of DELETE or UPDATE statements. The question is how to get that info from Perl DBI? There are 2 ways:
First with a do statement:
my $rows = $dbh->do("DELETE FROM table_name WHERE col2='X'");
$rows can be a) Integer>0 b) 0E0 c) undef
0E0 is the DB's "true but numeric zero result".
undef would mean the statement failed.
Second with prepare/execute:
$rows can be (like first example): a) Integer>0 b) 0E0 c) undefmy $sth= $dbh->prepare("DELETE FROM table_name WHERE col2=?"); $sth->execute("X"); my $rows = $sth->rows();
I almost always run with RaiseError=1 so checking for undef doesn't come up.
I don't know if DBI returns 1 or 0E0 for a successful SELECT operation.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^8: Can I get the actual error for DBI->execute() ?
by Danny (Chaplain) on Jun 24, 2024 at 14:40 UTC | |
by Marshall (Canon) on Jun 24, 2024 at 18:05 UTC |