#!/usr/bin/perl -wT use strict; use warnings; use DBI; #use CGI; use CGI qw(:standard); use CGI::FormBuilder; use Data::Dumper; my (@keys,@values,@env_types); my ($keylist,$valuelist,$field,$env_choose); my $o_dbuser = "usr"; my $o_dbpwd = "pwd"; my ($query,$last,$servers_add); my $form = CGI::FormBuilder->new(keepextras => 1); my $mode = $form->cgi_param('mode'); #my $cgi = CGI->new(); #my $mode = $cgi->param('mode'); #my $mode = param('mode'); my $dbh = DBI->connect("DBI:mysql:database=overall;host=192.192.192.192;port=3307", "$o_dbuser", "$o_dbpwd", {'RaiseError' => 1}); my $env_types = "SHOW TABLES FROM `overall` LIKE '%xen_env_%';"; my $sth = $dbh->prepare($env_types); $sth->execute() or die "could not execute", $sth->errstr; while (my $e = $sth->fetchrow_array) { push @env_types, $e; } $sth->finish(); if ($mode eq 'servers') { my $get_summary = "SELECT * FROM `Servers`;"; my $sth0 = $dbh->prepare($get_summary); $sth0->execute(); @keys = @{$sth0->{NAME_lc}} or die "Can't get Field names due to:$!"; $sth0->finish(); $sth0 = $dbh->prepare($get_summary); $sth0->execute() or die "could not execute", $sth0->errstr; my $dbvalues = $sth0->fetchrow_hashref; $sth0->finish(); $last = $keys[$#keys]; foreach (@keys) { $keylist .= "$_,"; } $keylist =~ s/$last\,/$last/; $servers_add = CGI::FormBuilder->new( fields => [@keys], header => 1, method => 'POST', required => 'ALL', stylesheet => 'fb.css', keepextras => 1, ); $servers_add->field(name => 'env_type', options => [@env_types], type => 'select',); if ($servers_add->submitted) { $field = $servers_add->field; $last = $keys[$#keys]; for my $k (@keys) { $valuelist .= "'$field->{$k}',"; } $valuelist =~ s/\'\,$/\'/; my $sql = "INSERT INTO `Servers` ($keylist) VALUES($valuelist);"; $sth0 = $dbh->prepare($sql); $sth0->execute() or die "Could not execute", $sth0->errstr; $sth0->finish(); print $servers_add->confirm; } else { print $servers_add->render; } }elsif ($mode eq 'env') { $env_choose = CGI::FormBuilder->new( fields => [qw(env_type env_state)], header => 1, method => 'post', keepextras => 1, ); if ($env_choose->submitted) { print $env_choose->confirm; } }