phpbar.de logo

Mailinglisten-Archive

Re: Anbindung einer MySQL Datenbank an Apache
Archiv Mailingliste mysql-de

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

Re: Anbindung einer MySQL Datenbank an Apache



Hi,

Carsten Brenner <carsten.brenner_(at)_xlink.net> schrieb mir:

> Ich möchte eine MySQL Datenbank in einer HTML Seite von Apache auslesen
> bzw. updaten.
> Wie verknüpfe ich die beiden Programme bzw. wie kann ich meine SQL
> Statements übergeben?

Einen connect kannst Du folgendermaßen aufbauen:
(natürlich in einem entsprechenden perl-script)


    my $dbase   = 'blafasel';
    my $dbuser  = 'user_bla';
    my $dbhost  = 'host.domain.de'; # auf die Rechte achten!!!
    my $dbtable = 'blatable';
    my $dbpass  = 'blapassword';
    my $dbh     = &connect($dbase,$dbuser,$dbhost,$dbtable);


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

Was Du allerdings dann machen willst, ist nicht ganz trivial, bzw wird
nicht besonders deutlich. Du kannst mit folgenden Statements connects
zur Datenbank nutzen um damit _irgendwas_ zu machen:

Die Spaltenbezeichnungen holen:

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

Alle Daten in einem assoziativen Array holen:

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

Daten aus einem Webfomular einfügen:

    my $dbh     = &connect($dbase,$dbuser,$dbhost,$dbtable);
    my _(at)_COLUMNS = get_columns($dbh,$dbtable);
    my %param = map(($_ => param $_), param);
    $param{'ID'} = time;
    $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";


Grüße vom Xlink-Pop-Nürnberg,

	Thomas Gericke


-- 
Thomas Gericke    *   noris network GmbH   *   Tel.: (09 11) 93 52-0
info_(at)_noris.de * Ihr Internet-Provider in Nuernberg * Fax: 93 52-1 00


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive