如何从客户端/浏览器有选择地启动和结束perl的持久Apache :: DBI?

时间:2010-07-29 06:30:12

标签: perl dbi apache-dbi

这个问题与我们基于Web的应用程序有关,它使用perl,apache,Apache :: DBI和数据库(MySQL,SQLite或任何其他)。

我们知道Apache :: DBI用于创建持久数据库连接。从Apache Web服务器启动到关闭时,这些连接存在于内存中。

我的问题是:是否可以在Apache进程的开始和结束之间的任意时间创建持久数据库连接?我们不希望在Apache Web服务器进程的整个生命周期中都有持久连接。

我们需要在Apache Web服务器启动后随时创建持久连接。我们需要在Apache Web服务器关闭之前随时终止持久连接。

1 个答案:

答案 0 :(得分:0)

我不太确定如何做到这一点。 但我建议创建一个模块,专门用于启动你的连接,使用 它结束了。 在它内部,你得到你的连接作为标量,比如$ dbh,这对于每个调用DBI函数的人来说都很常见(对你的mysql服务器发出请求)。


package myBDDConnection;
use DBI;
our @EXPORT_OK = qw(&Query);

our $dbh = Connect();

sub Connect(){
my $dbh = DBI->connect(...);
...
return $dbh;
}
sub Query() {
 if(!$dbh) {$dbh=Connect()}
  //then perform query
}

sub Close(){
 $dbh->close() //or finish, i'm not sure
}

然后,在其他模块中,导入myBDDConnection,并通过上一个模块的Query函数执行查询。