I know it may not be very pretty or efficient but it is effective and simple. I'll leave the implementation up to you.sub GetDatabases { my @tempdbname; my @databases2; my @databases = DBI->data_sources("mysql"); for my $x(0..$#databases) { @tempdbname = split(/:/,$databases[$x]); push @databases2, $tempdbname[$#tempdbname]; } return @databases2; } sub GetTables { my $database = shift; my @tables2; my $datasource = "dbi:mysql:dbname=$database;host=localhost;"; my $dbh = DBI->connect($datasource,'dbuser','password' ,{PrintErro +r => 0}) or return @tables2; my $statement = "SHOW TABLES"; my $sth = $dbh->prepare($statement); my $rc = $sth->execute(); if($rc ne "0E0") { my $tables = $sth->fetchall_arrayref; for my $xx(0..$#{$tables}) { push @tables2,$tables->[$xx][0]; } } return @tables2; } sub GetFields { my $database = shift; my $table = shift; my @fields; my $counter = 0; my $test; my $datasource = "dbi:mysql:dbname=$database;host=localhost;"; my $dbh = DBI->connect($datasource,'dbuser','password'); my $statement = "DESCRIBE $table;"; my $sth = $dbh->prepare($statement99); my $rc = $sth->execute(); while($test = $sth->fetchrow_hashref) { $counter++; for my $t(keys %{$test}) { # field field info $fields[$counter]{$t} = $test->{$t}; } } return @fields; }
In reply to Re: Reading DB
by ChrisR
in thread Reading DB
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |