#!/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(\n); } print "\n"; while (@rr=$sth->fetchrow_array) { print ""; foreach $ra(@rr) { print ""; } print qq(\n); } print "
 $ra dell
 $raedit   x
"; $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"; }