Files
scripts/Perl Skript template/database.pm
2024-10-14 00:08:40 +02:00

83 lines
1.8 KiB
Perl

package database;
require Exporter;
use DBI;
use vars qw($VERSION @ISA @EXPORT);
$VERSION = 1.00;
@ISA = qw(Exporter);
###############################################################################
@EXPORT = qw/
db_connect
db_disconnect
db_exec
db_select
/;
our $FUNC_STATEMENT_HANDLE;
######## Datenbank Funktionen und Beispielnutzung
# my $DB_HANDLE;
# my $ok = db_connect ($DB_HANDLE, $conf{'DB_TYPE'}, $conf{'DB_NAME'}, $conf{'DB_HOST'}, $conf{'DB_PORT'}, $conf{'DB_USER'}, $conf{'DB_PASS'});
# exit if (!$ok);
# my @ret = db_select ($DB_HANDLE, "select password from passwd where user='test'");
# my $i=0; my $j;
#foreach my $x (@ret) {
# $j=0;
# foreach my $y (@{$x}) {
# p "i: $i, j: $j, wert: '$y'";
# $j++;
# }
# $i++;
#}
# db_disconnect ($DB_HANDLE);
sub db_connect {
# call: db_connect($DB_HANDLE, $conf{'DB_TYPE'}, $conf{'DB_NAME'}, $conf{'DB_HOST'}, $conf{'DB_PORT'}, $conf{'DB_USER'}, $conf{'DB_PASS'});
my $ok = eval {
$_[0] = DBI->connect("DBI:$_[1]:$_[2]:$_[3]:$_[4]", "$_[5]", "$_[6]");
return 0 if ($_[0] == undef);
return 1;
};
return $ok;
}
sub db_disconnect {
# call: db_disconnect($DB_HANDLE);
$_[0]->disconnect();
}
sub db_exec {
# call: db_exec($DB_HANDLE, "insert|update|delete|alter...");
$FUNC_STATEMENT_HANDLE = $_[0]->prepare ("$_[1]");
$FUNC_STATEMENT_HANDLE->execute();
$FUNC_STATEMENT_HANDLE->finish();
}
sub db_select {
# call: db_select($DB_HANDLE, "select ... from ...");
# return: @
my @data;
my $i;
my $j;
my @ret;
$FUNC_STATEMENT_HANDLE = $_[0]->prepare ("$_[1]");
$FUNC_STATEMENT_HANDLE->execute();
$i=0;
while (@data = $FUNC_STATEMENT_HANDLE->fetchrow_array()) {
$j=0;
foreach (@data) {
$ret[$i][$j]=$_;
$j++;
}
$i++;
}
return @ret;
}
1;