Apache2-SQLRequest
view release on metacpan or search on metacpan
lib/Apache2/SQLRequest.pm view on Meta::CPAN
my $class = shift;
my $r = bless { r => shift };
my $log = $r->log;
my $conf = Apache2::Module::get_config
(__PACKAGE__.'::Config', $r->server);
my $dconf = Apache2::Module::get_config
(__PACKAGE__.'::Config', $r->server, $r->per_dir_config);
map { $r->{$_} ||= defined $dconf->{$_} ? $dconf->{$_} :
defined $conf->{$_} ? $conf->{$_} : '' } qw(dsn user password);
# guarantee the dbi
$r->log->debug(sprintf("dsn: '%s', user: '%s', pass: '%s'",
map { defined $_ ? $_ : '' } @{$r}{qw(dsn user password)}));
require DBI;
$r->log->debug("DBI loaded.");
my $dbh = $r->{dbh} = $DBCONNS{$r->{dsn}} ||=
#join(" ", @{$r}{qw(dsn user password)});
DBI->connect(@{$r}{qw(dsn user password)}) or die
"Cannot connect to database with dsn $r->{dsn}: " . DBI->errstr;
$r->log->debug("DBI really loaded.");
# configuration is transient
$r->{sth} ||= {};
for my $query (keys %{$dconf->{queries}}) {
my $c = $dconf->{queries}{$query};
eval { $r->prepare_query($query, $c->{string}) } or do {
$log->crit($@);
return Apache2::Const::SERVER_ERROR;
lib/Apache2/SQLRequest/Config.pm view on Meta::CPAN
req_override => Apache2::Const::OR_ALL,
errmsg => 'user',
cmd_data => 'user',
};
push @directives => {
name => 'DBPassword',
func => __PACKAGE__ . '::_set_scalar',
args_how => Apache2::Const::TAKE1,
req_override => Apache2::Const::OR_ALL,
errmsg => 'password',
cmd_data => 'password',
};
sub _set_sql_query {
my ($self, $parms, $qname, $query) = @_;
$self->{queries} ||= {};
$self->{queries}{$qname} ||= {};
$self->{queries}{$qname}{string} = $query;
}
push @directives => {
( run in 0.872 second using v1.01-cache-2.11-cpan-49f99fa48dc )