Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: RFC: Databases made easy

by JavaFan (Canon)
on Mar 22, 2011 at 11:52 UTC ( #894776=note: print w/ replies, xml ) Need Help??


in reply to RFC: Databases made easy

If an error did occur (maybe you don't have write permission for the current directory) most likely you will see the error message twice - once generated by the DBI/DBD code, and once from the die $@;
That can easily be prevented by doing:
$dbh->{PrintError} = 0;
The DBI manual recommends this:
If you turn "RaiseError" on then you'd normally turn "PrintError" off.
my $entries = eval { my $entries = 0; my $sth = $dbh->prepare ($sql); #2 while (my ($name, $age) = each %people) { #3 ++$entries if $sth->execute ($name, $age); #4 } $dbh->commit (); #5 return $entries; } or do { my $err = $@; eval {$dbh->rollback ()} or $err .= "\n Rollback processing +failed!"; die $err; };
That code will die if %people is empty. I'd write that as:
my $entries; eval { ... stuff ... $entries++ if $sth->execute($name, $age); ... more stuff ... $dbh->commit; 1; } or do { ... rollback and die ... };


Comment on Re: RFC: Databases made easy
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://894776]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (8)
As of 2014-10-02 10:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (52 votes), past polls