Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

Zugriff auf SQL-Datenbanken mit Perl

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Wer Perl professionell programmieren will, kommt auf die Dauer nicht um SQL herum. Deswegen gibt es das DBI-Modul, das Ihnen die Sache enorm erleichtert.

Einbindung

Zunächst einmal muss das DBI-Modul eingebunden werden:

use DBI;

Verbindung zur Datenbank herstellen

Um eine Datenbank zu verwenden, muss sie zunächst einmal konnektiert werden:

my $dbname=" ";
my $username=" ";
my $pw=" ";

my $data1 = "DBI:mysql:$dbname";
my $data2 = DBI->connect($data1, $username, $pw, { RaiseError => 1 }) || die("Kann DB nicht öffnen!");


Logischerweise müssen $dbname, $username und $pw mit sinnvollen Werten gefüllt werden. Mit $data2 haben Sie nun eine Art "Handle" auf die Datenbank eingerichtet.

Abfrage durchführen

Eine Abfrage funktioniert nach diesem Muster: Sie definieren eine SQL-Anweisung, die der Datenbank übergeben wird. Dann prüfen Sie, was die Datenbank als Ergebnis zurückliefert.

my $sql="SHOW TABLES"; # SQL-Befehl

my $abfr1=$data2->prepare($sql);
$abfr1->execute;

while (@ergf = $abfr1->fetchrow_array)
{
    # Hier: Ergebnisse verarbeiten. Den Wert des ersten Daten-
    # feldes des aktuellen Datensatzes finden Sie unter
    # $ergf[0], den des zweiten unter $ergf[1], den des dritten
    # unter $ergf[2] usw.
}

$abfr1->finish;


Dort, wo die Kommentarzeilen stehen, müssen Sie also etwas mit den Ergebnissen machen. Jeder Durchlauf der while-Schleife holt sich einen neuen Datensatz und schreibt die Werte der Datenfelder der Reihe nach in @ergf.

Anfrage durchführen

Anfragen brauchen Sie, wenn Sie z.B. etwas in die Datenbank schreiben wollen. Das Muster ähnelt dabei sehr dem der Anfrage:

my $sql="DROP TABLE Test"; # SQL-Befehl

eval {
    my $anfr=$data2->prepare($sql);
    $anfr->execute;
};

if ($@)
{
    die "Fehler: $@!";
}


Was wurde hier gemacht? Wir haben den Teil, in dem auf Gültigkeit des SQL-Befehls geprüft wird, in ein eval-Konstrukt verpackt. Dadurch werden Fehler abgefangen. Gleichzeitig wäre es aber leichtsinnig, Ihr Programm trotz eines möglichen Fehlers nicht zu unterbrechen. Daher die Prüfung der Variable $@, die nur einen Wert enthält, wenn die vorherige Anweisung einen Fehler zurücklieferte.

Datenbank schließen

Nicht vergessen werden sollte das Schließen der Datenbank am Ende Ihres Programms:

$data2->disconnect;


Autor: Alexander Dilthey | Erstmalig veröffentlicht: 02.11.2000 | Einen Artikel schreiben?

 

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.