phpbar.de logo

Mailinglisten-Archive

Re: Perl und MySQL
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Perl und MySQL



Hi,

Walter Mantsch <w.mantsch_(at)_madsack.de> schrieb mir:

> Wie bekomme ich Perl und MySQL zusammen?
> Kann mir jemand ein einfaches Beispiel zeigen?

#!/usr/bin/perl -w

use CGI ':standard';
use DBI;

# Datenbank-Variablen

my $dbhost  = 'hostname';
my $dbase   = 'database';
my $dbuser  = 'username';
my $dbpass  = 'password';
my $dbtable = 'tabelle';

# Eintragen eines Datensatzes (wird von einem HTML-Form eingelesen
# und mittels param('param') übergeben

my $dbh     = &connect($dbase,$dbuser,$dbpass,$dbhost,$dbtable);
my _(at)_COLUMNS = get_columns($dbh,$dbtable);
my %param = map(($_ => param $_), param);
$statement = 'INSERT INTO ' . $dbtable . '('
  . join(', ',       _(at)_COLUMNS)
  . ') VALUES ('
  . join(', ', ('?')x_(at)_COLUMNS)
  . ');';
$dbh->do($statement, undef, _(at)_param{_(at)_COLUMNS})
      or die "Couldn't insert: ", $dbh->errstr, "\n";
disconnect($dbh);

# Auslesen der Datensätze

my $dbh     = &connect($dbase,$dbuser,$dbpass,$dbhost,$dbtable);
my _(at)_COLUMNS = get_columns($dbh,$dbtable);
$ary_ref = get_data($dbh,$dbtable);
disconnect($dbh);

# Output der Datensätze im Browser

print header,
  start_html(-TITLE=>'Die aktuellen Treffer.',
             -BACKGROUND=>$background,
             -TEXT=>'black',
             -LINK=>'blue',
             -ALINK=>'blue',
             -VLINK=>'blue'
            ),
    table({BORDER=>'0',
           HEIGHT=>'100%',
           WIDTH=>'100%'
          },
      Tr td{ALIGN=>'center'},
    table(
          {BORDER=>'1', WIDTH=>'100%'},
          Tr
            [
              th([
                  _(at)_COLUMNS
                 ]),
              map {
                   my $row  = $_;
                   td [
                        map $row->{$_}, _(at)_COLDATA
                      ]
              } _(at)_$ary_ref
            ],
    ),
  end_html;
exit;

sub connect {
        my ($dbase, $dbuser, $dbhost, $dbtable) = _(at)__;
        DBI->connect("DBI:mysql:database=$dbase",
                                $dbuser,
				$dbpass,
                                )
        or die "Cannot connect to database", $DBI::errstr
}

sub disconnect {
        shift->disconnect
}

sub get_columns {
        my ($dbh, $dbtable) = _(at)__;
        my $COLUMNS = $dbh->selectall_arrayref("show columns from " . $dbtable)
                or die "Fehler beim Ermitteln der Spaltennamen\n", $dbh->errstr;
        map $_->[$[], _(at)_$COLUMNS;
}

sub get_data {
  my ($dbh, $dbtable) = _(at)__;
  my $sth = $dbh->prepare('SELECT * FROM $dbtable')
          or die $dbh->errstr;
  $sth->execute;
  $sth->fetchall_arrayref({})
        or die $sth->errstr;
}





In der Hoffnung, Dir geholfen zu haben,

	Thomas Gericke
--
  Thomas Gericke - netbits computer solutions - gericke_(at)_netbits.de
  Schumacher & Gericke GdbR        -        http://www.netbits.de/


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive