#!/usr/bin/perl
use DBI;
use CGI;
$param=new CGI;
$tabulka = $param ->param('table');
$spesl = $param ->param('spesl');
$order = $param ->param('order');
print "Content-type:text/html\n\n";
&init;
print "
Mysql editor v0.2
";
print "Select a table :
";
foreach $r (@TABL)
{
print qq( $r |);
}
if ($tabulka)
{
print qq(\n
Selected table : $tabulka
New record
);
if(!$COLS{$tabulka}){$COLS{$tabulka}="*";};
$dbh = DBI->connect("$INIT","$LOGIN","$PASS");
if ($spesl)
{
if ($order){$spesl=$spesl . $order};
$sth=$dbh->prepare($spesl);
$sth->execute;
@sloupce = @{$sth->{NAME}};
$sqlv=$spesl;
}else
{
$sth=$dbh->prepare("select $COLS{$tabulka} from $tabulka $order");
$sth->execute;
@sloupce = @{$sth->{NAME}};
$t="@sloupce";
$t=~tr/ /,/;
$sqlv="select $t from $tabulka$order";
}
print qq(\(expert mode\)
);
print qq(
);
$spesl=~s/\s*order\s*by\s*.*//i;
foreach $ra(@sloupce)
{
$spesl=~tr/ /+/;
$spesl=~s/,/%2C/g;
print qq( $ra | \n);
}
print " | dell |
\n";
while (@rr=$sth->fetchrow_array)
{
print "";
foreach $ra(@rr)
{
print " $ra | ";
}
print qq(edit |
x
|
\n);
}
print "
";
$dbh->disconnect;
}
# -------------------------------------------------
sub init
{
open(F,"dat.conf");
@o =;
close(F);
%COLS=();
foreach $radek (@o)
{
next if $radek=~/^#/; next unless $radek=~/\S/;
if ($radek=~/^init/i) {($INIT)=($radek=~/^init\s*=\s*(\S*)/i);};
if ($radek=~/^login/i) {($LOGIN)=($radek=~/^login\s*=\s*(\S*)/i);};
if ($radek=~/^pass/i) {($PASS)=($radek=~/^pass\s*=\s*(\S*)/i);};
if ($radek=~/^tables/i) {($tmp)=($radek=~/^tables\s*=\s*(.*)/i);$tmp=~s/\s*//g;@TABL=split(",",$tmp);};
if ($radek=~/^view/i) {($tmp1,$tmp2)=($radek=~/^view\s*(.*?)\s*=\s*(.*)/i);$tmp2=~s/\s*//g;$tmp2=~s/,/,/g;$COLS{"$tmp1"}="$tmp2";};
}
if(!$INIT) {&err("100","No init string");exit(0);}
}
sub err
{
print "
Error :$_[0] : $_[1]\n";
}