If you use RaiseErrors, DBI dies in case of error. In a daemonlike script, that 
is properly the last thing you want to happen.

the perldoc on finish() might has missed out, that if autocommit is 
deactivated, it is not guaranteed that the commit to db is done at the moment 
the instruction is executed.

Thanks for the info on quoting.

D. 

Jenda Krynicky <[EMAIL PROTECTED]> hat am 13. Oktober 2008 um 15:10 geschrieben:

> From: Deviloper <[EMAIL PROTECTED]>
> > in the early days of the dbi-modul there was a function $dbh->ping().
> > nearly no driver ever implemented it.
> >
> > I want to check the status of my db, in my daemon on a regular base.
> > I could not find any standard solution. Today I´m just doing a query
> > and check then if there where errors.
> >
> >
> > Also I want to reread the DB config.
> > (My Daemons are running stable for years, but the DB-Guy switch from one db 
> > to another
> > on a weekly base and I just wont care if my configfile is reread.)
> >
> >
> > I do it this way :(RaiseErrors is off)
> >
> > my $sth = $dbh->prepare("$query"); 
> 
>   my $sth = $dbh->prepare($query); 
> 
> Do not quote variables! It's pointless. It just forces Perl to make a
> copy or even convert a number to a string. And if the variable
> happens to be a reference you end up with a string that kinda looks
> like a ref, but isn't.
> 
> 
> > $sth->execute();               
> >
> > # $sth->finish(); #not needed with autocommit
> 
> from perldoc DBI:
> 
> The finish method does not affect the transaction status of the
> database connection. It has nothing to do with transactions. It's
> mostly an internal "housekeeping" method that is rarely needed.
> 
> > if ( defined $DBI::errstr || defined $sth->errstr()){
> > # close db.
> > #... reread configurationfile and
> > # connect with new config.
> > }
> 
> I generaly prefer to use RaiseError.


> Jenda
> ===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
> When it comes to wine, women and song, wizards are allowed
> to get drunk and croon as much as they like.
>         -- Terry Pratchett in Sourcery
> 
> 
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> http://learn.perl.org/
> 
>

Reply via email to