Mailinglisten-Archive |
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
php::bar PHP Wiki - Listenarchive