calcms/db.pm: parameter passing
This commit is contained in:
@@ -29,8 +29,7 @@ our $write = 1;
|
|||||||
|
|
||||||
# connect to database
|
# connect to database
|
||||||
sub connect($;$) {
|
sub connect($;$) {
|
||||||
my $options = shift;
|
my ($options, $request) = @_;
|
||||||
my $request = shift;
|
|
||||||
|
|
||||||
return $request->{connection} if ( defined $request ) && ( defined $request->{connection} );
|
return $request->{connection} if ( defined $request ) && ( defined $request->{connection} );
|
||||||
|
|
||||||
@@ -68,7 +67,7 @@ sub connect($;$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub disconnect ($){
|
sub disconnect ($){
|
||||||
my $request = shift;
|
my ($request) = @_;
|
||||||
my $dbh = $request->{connection};
|
my $dbh = $request->{connection};
|
||||||
$dbh->disconnect;
|
$dbh->disconnect;
|
||||||
delete $request->{connection};
|
delete $request->{connection};
|
||||||
@@ -77,9 +76,7 @@ sub disconnect ($){
|
|||||||
|
|
||||||
# get all database entries of an sql query (as list of hashs)
|
# get all database entries of an sql query (as list of hashs)
|
||||||
sub get($$;$) {
|
sub get($$;$) {
|
||||||
my $dbh = shift;
|
my ( $dbh, $sql, $bind_values ) = @_;
|
||||||
my $sql = shift;
|
|
||||||
my $bind_values = shift;
|
|
||||||
|
|
||||||
if ( $debug_read == 1 ) {
|
if ( $debug_read == 1 ) {
|
||||||
print STDERR $sql . "\n";
|
print STDERR $sql . "\n";
|
||||||
@@ -111,8 +108,7 @@ sub get($$;$) {
|
|||||||
|
|
||||||
# get list of table columns
|
# get list of table columns
|
||||||
sub get_columns($$) {
|
sub get_columns($$) {
|
||||||
my $dbh = shift;
|
my ($dbh, $table) =@_;
|
||||||
my $table = shift;
|
|
||||||
|
|
||||||
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
||||||
return [ map { $_->{column_name} } @$columns ];
|
return [ map { $_->{column_name} } @$columns ];
|
||||||
@@ -120,8 +116,7 @@ sub get_columns($$) {
|
|||||||
|
|
||||||
# get hash with table columns as keys
|
# get hash with table columns as keys
|
||||||
sub get_columns_hash($$) {
|
sub get_columns_hash($$) {
|
||||||
my $dbh = shift;
|
my ($dbh, $table) =@_;
|
||||||
my $table = shift;
|
|
||||||
|
|
||||||
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
||||||
return { map { $_->{column_name} => 1 } @$columns };
|
return { map { $_->{column_name} => 1 } @$columns };
|
||||||
@@ -129,16 +124,14 @@ sub get_columns_hash($$) {
|
|||||||
|
|
||||||
#returns last inserted id
|
#returns last inserted id
|
||||||
sub insert ($$$){
|
sub insert ($$$){
|
||||||
my $dbh = shift;
|
my ($dbh, $table, $entry) =@_;
|
||||||
my $tablename = shift;
|
|
||||||
my $entry = shift;
|
|
||||||
|
|
||||||
my @keys = sort keys %$entry;
|
my @keys = sort keys %$entry;
|
||||||
my $keys = join( ",", @keys );
|
my $keys = join( ",", @keys );
|
||||||
my $values = join( ",", map { '?' } @keys );
|
my $values = join( ",", map { '?' } @keys );
|
||||||
my @bind_values = map { $entry->{$_} } @keys;
|
my @bind_values = map { $entry->{$_} } @keys;
|
||||||
|
|
||||||
my $sql = "insert into $tablename \n ($keys) \n values ($values);\n";
|
my $sql = "insert into $table \n ($keys) \n values ($values);\n";
|
||||||
|
|
||||||
if ( $debug_write == 1 ) {
|
if ( $debug_write == 1 ) {
|
||||||
print STDERR $sql . "\n";
|
print STDERR $sql . "\n";
|
||||||
@@ -153,9 +146,7 @@ sub insert ($$$){
|
|||||||
|
|
||||||
# execute a modifying database command (update,insert,...)
|
# execute a modifying database command (update,insert,...)
|
||||||
sub put($$$) {
|
sub put($$$) {
|
||||||
my $dbh = shift;
|
my ($dbh, $sql, $bind_values) =@_;
|
||||||
my $sql = shift;
|
|
||||||
my $bind_values = shift;
|
|
||||||
|
|
||||||
if ( $debug_write == 1 ) {
|
if ( $debug_write == 1 ) {
|
||||||
print STDERR $sql . "\n";
|
print STDERR $sql . "\n";
|
||||||
@@ -178,6 +169,7 @@ sub put($$$) {
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# deprecated
|
||||||
sub quote($$) {
|
sub quote($$) {
|
||||||
my $dbh = shift;
|
my $dbh = shift;
|
||||||
my $sql = shift;
|
my $sql = shift;
|
||||||
@@ -212,8 +204,7 @@ sub shift_datetime_by_minutes($$$) {
|
|||||||
|
|
||||||
# get next free id of a database table
|
# get next free id of a database table
|
||||||
sub next_id ($$){
|
sub next_id ($$){
|
||||||
my $dbh = shift;
|
my ($dbh, $table) = @_;
|
||||||
my $table = shift;
|
|
||||||
|
|
||||||
my $query = qq{
|
my $query = qq{
|
||||||
select max(id) id
|
select max(id) id
|
||||||
@@ -226,8 +217,7 @@ sub next_id ($$){
|
|||||||
|
|
||||||
# get max id from table
|
# get max id from table
|
||||||
sub get_max_id($$) {
|
sub get_max_id($$) {
|
||||||
my $dbh = shift;
|
my ($dbh, $table) = @_;
|
||||||
my $table = shift;
|
|
||||||
|
|
||||||
my $query = qq{
|
my $query = qq{
|
||||||
select max(id) id
|
select max(id) id
|
||||||
|
|||||||
Reference in New Issue
Block a user