所以我有一个cgi脚本,
#!/usr/bin/perl -T
use strict;
use warnings;
use DBI;
use WebEngine;
my $dbh = DBI->connect('DBI:mysql:database', $username, $password)
|| die "Could not connect to database: $DBI::errstr";
my $we = WebEngine->new($dbh)
or die("Failed to instantiate WebEngine object:\n$!\n");
$userID = $we->register("MyUsername", $dbh);
这个脚本创建了一个数据库处理程序,然后使用我制作的一个模块来处理站点的大部分后端来注册用户名并返回一个用户 ID 号。
我对此有三个问题。
在此脚本中创建此 $dbh 是否会通过保持数据库连接打开来提高性能?
我可以将 $dbh 放在我的模块中而不用担心效率低下吗?
在不通过我的网站直接交互的模块中保留 $dbh(以及相关信息(我在代码中以纯文本形式保存我的通行证;那很糟糕吗?))是否有安全优势?