db.pm: fix table columns
-query the previously connected database on fetching table columns -avoid small/big letter on accessing the database schema
This commit is contained in:
@@ -25,6 +25,7 @@ our $read = 1;
|
|||||||
our $write = 1;
|
our $write = 1;
|
||||||
|
|
||||||
# connect to database
|
# connect to database
|
||||||
|
my $database;
|
||||||
sub connect($;$) {
|
sub connect($;$) {
|
||||||
my ($options, $request) = @_;
|
my ($options, $request) = @_;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ sub connect($;$) {
|
|||||||
my $access_options = $options->{access};
|
my $access_options = $options->{access};
|
||||||
my $hostname = $access_options->{hostname};
|
my $hostname = $access_options->{hostname};
|
||||||
my $port = $access_options->{port};
|
my $port = $access_options->{port};
|
||||||
my $database = $access_options->{database};
|
$database = $access_options->{database};
|
||||||
my $username = $access_options->{username};
|
my $username = $access_options->{username};
|
||||||
my $password = $access_options->{password};
|
my $password = $access_options->{password};
|
||||||
|
|
||||||
@@ -92,18 +93,24 @@ sub get($$;$) {
|
|||||||
|
|
||||||
# get list of table columns
|
# get list of table columns
|
||||||
sub get_columns($$) {
|
sub get_columns($$) {
|
||||||
my ($dbh, $table) =@_;
|
my ($dbh, $table) = @_;
|
||||||
|
my $columns = db::get( $dbh,
|
||||||
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
qq{
|
||||||
return [ map { $_->{column_name} } @$columns ];
|
select column_name from information_schema.columns
|
||||||
|
where table_schema=?
|
||||||
|
and table_name = ?
|
||||||
|
order by ordinal_position
|
||||||
|
},
|
||||||
|
[$database, $table]
|
||||||
|
);
|
||||||
|
return [ map { values %$_ } @$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, $table) =@_;
|
my ($dbh, $table) = @_;
|
||||||
|
my $columns = get_columns($dbh, $table);
|
||||||
my $columns = db::get( $dbh, 'select column_name from information_schema.columns where table_name=?', [$table] );
|
return { map { $_ => 1 } @$columns };
|
||||||
return { map { $_->{column_name} => 1 } @$columns };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#returns last inserted id
|
#returns last inserted id
|
||||||
|
|||||||
Reference in New Issue
Block a user