Hi all.
Could anybody tell me how to setup and handle persistent connections using DBI::mysql?
I am not allowed to use Apache::DBI.
I tried:
sub Application_OnStart{ $dbh = DBI->connect( "DBI:mysql:database=mydatabase","me","mypassword", { PrintError => 1, # warn( ) on errors RaiseError => 0, # don't die on error AutoCommit => 1, # commit executes immediately }
)|| sub{$DBI::errstr;undef $dbh}; }
Use Script_OnStart, which gets run each script request, since you need the database connection initilized per process. A simple method might look like:
use vars qw($dbh); sub Script_OnStart { unless($dbh && eval { $dbh->ping }) { $dbh = DBI->connect(...); } }
Where to put
$Server->RegisterCleanup(sub{if($dbh){$dbh->disconnect} }); if the server is restarted or killed
Well, if you want the connect to be "persistent", then don't do this anywhere. But if you want the connection disconnected each request, then you can do this just after the unless{} block above in the Script_OnStart, but then you can get rid of the unless block altogether, and just have the DBI->connect part since you are not doing persistent connections.
Is there a standart way
or som tweaking?
I would say that using Apache::DBI is standard, but this is fine too.
Regards,
Josh
________________________________________________________________________ Josh Chamas, Founder | NodeWorks - http://www.nodeworks.com Chamas Enterprises Inc. | NodeWorks Directory - http://dir.nodeworks.com http://www.chamas.com | Apache::ASP - http://www.apache-asp.org
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]