Home - Datenbank Grundlagen - Datenbank erstellen www.sqldocu.com
zurück vor



   Datenbanken
erstellen mit
 PERL


Um mit Hilfe von PERL eine Datenbank zu erstellen ist es nötig:
Wenn das Script über einen Webserver (z.B. Apache) aufgerufen wird, muss der Webserver entsprechend konfiguriert sein. Unter Unix (Linux) muss das Perl-Script zusätzlich über die nötigen Rechte (Lese- und Ausführungrechte für den User unter dem der Webserver läuft) verfügen. Hier findest du mehr zum Thema Konfiguration von Perl-DBI-DBD-Apache.

Folgende Informationen werden benötigt:
  • Hersteller des DBMS das verwendet wird (z.B: Oracle,MySQL,Informaix)
  • IP Adresse des DBMS
  • Benutzerkennung (Benutzernamen/Passwort) um DB zu erstellen

Nehmen wir an, wir wollen folgendes DBMS verwenden:
  • IP Adresse: localhost (PHP und DBMS sind auf dem selben Rechner installiert)
  • RDBMS: MySQL
  • Benutzername: root (dieser Benutzer ist nach der Installation automatisch vorhanden)
        Kennwort: geheim (nach Installation ist Kennwort leer)
  • Name der Datenbank: meineDb

Unser PHP Script besitzt die Form:

Zeile1:
Zeile2:
Zeile3:
Zeile4:
Zeile5:
Zeile6:
Zeile7:
Zeile8:
Zeile9:
Zeile10:
Zeile11:
Zeile12:
Zeile13:
Zeile14:
Zeile15:
#!d:/perl/bin/perl.exe -w # Pfad und Name des Perl Interpreters
use CGI::Carp qw(fatalsToBrowser); # sendet Fehlermeldungen an Browser
use DBI; # Module DBI wird verwendet
$dsn = "DBI:mysql:database=test;host=localhost;port=3306";  
$dbh = DBI->connect( $dsn,'root','geheim' ); # Datenbank Verbindung wird hergestellt
$sth = $dbh->prepare( 'CREATE DATABASE meineDb' ); # SQL Befehl wird vorbereitet
$sth->execute; # Ausführen des SQL Befehls
$sth->finish; # Ressourcen werden freigegeben
$dbh->disconnect();; # Datenbank Verbindung wird beendet
print "Content-type: text/html\n\n"; # HTML header wird erzeugt
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";
Achtung: Nach der Installation von MySQL ist das Passwort leer. Wer das Passwort für den Benutzer root noch nicht geändert hat muss statt Zeile2 folgenden Code verwenden:
Zeile5: $dbh = DBI->connect( $dsn,'root','' );


Zeile1:Hier muss der Pfad und der Name des Perl Interpreters angegeben werden. Selbst ein Leerzeichen vor #! kann dazu führen, dass der Interpreter nicht gefunden wird. Die "Endung" des Interpreters muss nicht angeführt werden.
#!d:/perl/bin/perl -w funktioniert ebenfalls.
Zeile2: Diese Zeile ist nicht notwendig. Durch sie werden von Perl erzeugte Fehlermeldungen (stderr) an den Browser weitergeleitet. Die Meldung Internal Server Error (entsteht wenn Script über CGI (HTTP Server) aufgerufen wird und eine Fehler enthält) wird unterdrückt. Stattdessen wird die Fehlermeldung des Perl Interpreters (meistens zumindest :) ) im Browserfenster dargestellt.
Zeile3:Module DBI (DataBaseInterface) wird geladen
Zeile4:DBI:Datenbanktreiber:database=Datenbankname;host=Hostname;port=Portnummer
Auch das funktioniert (öfter verwendet):
$dsn = "DBI:mysql:test:localhost:3306";
Statt localhost kann natürlich eine IP Adresse (z.B 195.325.114) verwendet werden.
Zeile10-15:HTML Code wird erzeugt. Wenn das Script nicht über CGI (HTTP Server) aufgerufen wird sind diese Zeilen sinnlos.




Infos zu PERL unter: www.perl.com
Infos zu MySQL unter: www.mysql.com