83 lines
1.8 KiB
Perl
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;
|
|
|