 |
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;
|
 |
|
|
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt! |
|
|
Einführung in CSS bei HTMLWorld.
|
|