#! /usr/bin/perl use strict; use warnings; use DBI; my $driver = 'mysql'; my $database = 'yoda'; my $hostname = 'localhost'; my $port = 3306; my $user = 'yoda'; my $password = 'geheim'; print "Content-type: text/html SQL-Demo

SQL-Demo

"; # Spalte Uebergabeparameter auf: my $parameter; if ($ENV{'REQUEST_METHOD'} eq 'POST') { read (STDIN, $parameter, $ENV{'CONTENT_LENGTH'}); } else { $parameter = $ENV{'QUERY_STRING'}; } my %uebergabe; for my $paar (split (/&/, $parameter)) { (my $name, my $wert) = split (/=/, $paar); $wert =~ tr/+/ /; $wert =~ s/%(..)/pack ("C", hex ($1))/eg; $uebergabe{$name} = $wert; } my $abfrage = $uebergabe{'abfrage'}; if ($abfrage eq '') { print ' '; exit; } print "

Abfrage: $abfrage

\n"; my $fehler; my $connect_params = "DBI:$driver:database=$database;host=$hostname;port=$port"; my $dbh = DBI -> connect ($connect_params, $user, $password); if ($fehler = $dbh -> err) { print "Verbindungsfehler: $fehler\n"; exit; } my $sth = $dbh -> prepare ($abfrage); $sth -> execute; if ($fehler = $sth -> err) { print "Ausfuehrungsfehler: $fehler\n"; exit; } print " \n"; my @spaltennamen; while (my $zeilenreferenz = $sth -> fetchrow_hashref) { my $spalte; if (!@spaltennamen) { @spaltennamen = keys (%{$zeilenreferenz}); print " \n"; foreach $spalte (@spaltennamen) { print ' \n"; } print " \n"; } print " \n"; foreach $spalte (@spaltennamen) { print ' \n"; } print " \n"; } $sth -> finish; $dbh -> disconnect; print "
', $spalte, "
', $zeilenreferenz -> {$spalte}, "
";