| Home - Datenbanken und Perl | www.sqldocu.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hier versuchen wir zu zeigen wie SQL Befehle in PerlSkripts verwendet werden. Man spricht von
embedded (eingebetetes) SQL.
Um auf ein
RDBMS
(DatenbankServer) zugreifen zu können ist folgendes nötig:
Unten listen wir ein PerlSkript auf, das sich mit einem MySQL
RDBMS
verbindet. Das RDBMS läuft
auf dem gleichen Rechner wie das PerlSkript, deshalb können wir als HostNamen localhost
verwenden. Das Skript erzeugt die Datenbank meineDB und gibt anschliessend Beispiel Code zur Erstellung einer Datenbank mit Perl aus.
Achtung: Damit Skript funktioniert muss Benutzername und Passwort richtig gesetzt sein! zB: für MySQL Standardeinstellung muss Zeile 7 lauten: $dbh = DBI->connect( $dsn,'root','' );
#!d:/perl/bin/perl.exe -w
In der ersten Zeile eines PerlSkripts muss der Pfad zum Interpreter angegeben werden.
Diese Zeile muss in der ersten Zeile stehen, und selbst ein Leerzeichen vor # verursacht einen
Fehler (siehe Abschnitt Syntax, Zeile 1). Die Option -w
am Ende ist nicht notwendig. Sie bewirkt, dass neben Fehlermeldungen auch Warnungen angezeigt
werden.
Hinweis: Sind entsprechende Umgebungsvariblen gesetzt, kann es vorkommen das die Pfadangaben ignoriert werden, und ein anderer Interpreter aufgerufen wird. Mit folgenden Code kann man Umgebungsvariablen ausgeben lassen:
use CGI::Carp qw(fatalsToBrowser);
Mit dem Befehl use wird ein Module geladen (siehe Abschnitt
Syntax,
Zeile 2). In diesem Fall laden wir das
Module Carp. Es bewirkt, dass Fehlermeldungen an den Browser weitergeleitet werden.
Natürlich ist es nicht umbedingt erforderlich und macht nur Sinn, wenn Perl verwendet
wird um HTML Seiten zu erstellen. In der Testphase ist das Module sehr zu empfehlen.
Es sollte unmittelbar nach der Zeile mit dem Interpreterpfad stehen, da die Fehlerumleitung
erst ab der Zeile wirkt, in der das Modul geladen wird (scheint selbstverständlich zu sein,
ist es aber nicht).
use DBI;
Mit dem Befehl use wird ein Module geladen (siehe Abschnitt
Syntax,
Zeile 3). In diesem Fall laden wir das
Module DBI (DBI ->
DataBaseInterface,
siehe
benötigte Software für Perl).
Es bewirkt, dass Fehlermeldungen an den Browser weitergeleitet werden.
Natürlich ist es nicht umbedingt erforderlich und macht nur Sinn, wenn Perl verwendet
wird um HTML Seiten zu erstellen. In der Testphase ist das Module sehr zu empfehlen.
Es sollte unmittelbar nach der Zeile mit dem Interpreterpfad stehen, da die Fehlerumleitung
erst ab der Zeile wirkt, in der das Modul geladen wird (scheint selbstverständlich zu sein,
ist es aber nicht).
$ENV{INFORMIXDIR}="/opt/Informix80"; $ENV{INFORMIXSERVER}="databaseServer";
Mit dem Befehl $ENV{Name der UmgebungsVariablen} können Umgebungsvariablen
gesetzt werden. Hier wird:
INFORMIXDIR = "/opt/Informix80" und INFORMIXSERVER = "databaseServer" gesetzt. Diese werden Module DBI-informix für das RDBMS Informix verwendet. Da wir uns mit einem MySQL RDBMS verbinden, sind diese Anweisung nicht notwendig. Sie stehen an dieser Stelle nur zu Demonstrationszwecke (siehe Abschnitt Syntax, Zeile 4 und 5). Nur wenn erforderliche Umgebungsvariablen nicht gesetzt sind, ist die Anweisung nötig. Hinweis: Aus Sicherheitsgründen werden von Webservern Zugriffe manchmal unter Benutzern mit wenig Rechten ausgeführt. Wichtig Umgebungsvariablen sind für diese Benutzer selten gesetzt. Daher bei Fehlermeldungen nicht vergessen Umgebungsvariablen zu überprüfen (siehe Umgebungsvariablen ausgeben).
$dsn = "DBI:mysql:database=test;host=localhost;port=3306"; $dbh = DBI->connect( $dsn,'root','geheim' );
Mit dem Befehl DBI->connect() wird eine Verbindung zum
RDBMS
ergestellt.
siehe Abschnitt Syntax, Zeile 6 und 7).
$sth = $dbh->prepare( 'CREATE DATABASE meineDb' ); $sth->execute; $sth->finish;
Mit der SQL Anweisung
CREATE DATABASE
wird eine Datenbank erstellt.
Um eine SQL Anweisung mittels Perl auf einem
RDBMS
durchzuführen sind immer 3 Schritte notwendig
siehe Abschnitt Syntax, Zeile 8, 9 und 10). In Abschnitt SQL Anweisungen mit Perl wird auf die Besonderheiten aller wichiger SQL Anweisungen in Perl eingegangen.
$dbh->disconnect();
Mit der Befehl disconnect() wird die Verbindung zum RDBMS beendet (siehe
Abschnitt
Syntax,
Zeile 11).
print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<title>Datenbank erstellen</title>\n"; print "</head><body>\n"; print "Beispiel Code zur Erstellung einer Datenbank mit Perl\n"; print "</body></html>\n";
Mit diesen Zeilen wird eine HTML Seite erzeugt die
Beispiel Code zur Erstellung einer Datenbank mit Perl ausgibt (siehen Syntax, Zeile 12-17).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||