#!/usr/bin/perl
###################################################
# ToDateBase 1.0 Программа для выкладки файлов в базу данных в сети(mSQL например)
# Все права на программу принадлежат Головкину Александру
# Email: algol@hatmail.ru
# http://trampico.virtualave.net/
####################################################
$drv='mysql';#драйвер БД (mysql, DB2, Oracle, Xbase, ODBS, Sybase, Informix, File, TextFile, Proxy, Solid, mSQL)
$basename='test';# имя Вашей БД
$host='localhost';#имя хоста
$port='';#Номер порта
$user="root";#Имя юзера
$password = "";#Пароль


$dsn="DBI:".$drv.":".$basename.":".$host;
$dsn.=":$port" if ($port);
use DBI;
use CGI qw(:standard);
print $dns;
&connekt;
    



print h3('Выложить файл на базу данных'),
             start_multipart_form('POST', 'to_datebase.cgi');
print        "Quetry: ",popup_menu('quetry', ['insert','update'],'insert');
print        "Table: ",popup_menu('table', \@names, $names[0]);
print        "\nField name: ", textfield('field','','10'), " <font color=red><b>If update:</b></font> WHERE ",textfield('where','','20'),"<br>";
print        "File: ",filefield('ufile','',50,80),"<br>",
             submit, endform, "\n\n";
if (param('ufile')){
                   $ufile=param('ufile');
                   @values=<$ufile>;
                   $value= join(/ /,@values);
                   }



if (param('field')){
                    if (param('quetry') eq 'insert'){$statement="insert into ".param('table')." (".param('field').") values (\'$value\')";}
                    else{$statement="update ".param('table')." set ".param('field')."=\'$value\' where ".param('where');}
   ###              print $statement;
                 $sth=$dbh->prepare($statement);
                 $rv=$sth->execute || print "<font color=red><b>$DBI::errstr</b></font>\n";
                 }
if ($rv==1) {print h3('Ваш запрос выполнен');}
else{print h3('Ошибка в Вашем запросе');}
&end;
exit;

sub connekt{
print header, start_html('Web Interfase to Database'); 
$dbh = DBI->connect($dsn, $user, $password);
if( !defined $dbh ){
	print "$DBI::errstr\n";
        exit 1;
}
print a({-href=>'http://trampico.virtualave.net/'},'<b><i>My HomePage</i></b>'),"<br> Connected to datebase <b>$basename</b>!<hr>";
  @names = $dbh->tables;
print "<table bgcolor=\"#D0D0FF\" border=1 width=100%><caption><b>Таблицы в базе данных и их поля</b></caption>";


foreach $name (@names){
                      $sth=$dbh->prepare("select * from $name");
                      $rv=$sth->execute;
                      $cap=$sth->{NAME};
                      print "<tr><td><b>$name:</b></td><td>"; $i=0;
                      while($cap->[$i]){print $cap->[$i],", "; $i++;}
                      print"</td></tr>\n";
                      }
print"</table>\n<hr>\n";
$sth->finish;

}


sub end{
$dbh->disconnect;
print end_html;
exit;
}