0

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

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

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

我们需要在 Apache Web 服务器启动后的任何时候创建持久连接。我们需要在 Apache Web 服务器关闭之前的任何时候结束持久连接。

4

1 回答 1

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 函数执行查询。

于 2010-07-29T07:28:38.410 回答