Jak używać DBI do połączeń z bazą danych w Perlu?

Co to jest DBI?

DBI (Database Interface) to standardowy interfejs do baz danych w języku Perl. Umożliwia on programistom łatwe i efektywne łączenie się z różnymi systemami baz danych, takimi jak MySQL, PostgreSQL, SQLite, Oracle, i wiele innych. DBI jest bardzo elastyczny i pozwala na wykonywanie różnych operacji na bazach danych, takich jak tworzenie, odczytywanie, aktualizowanie i usuwanie danych.

Instalacja DBI

Aby korzystać z DBI w Perlu, najpierw musisz zainstalować moduł DBI oraz odpowiedni sterownik DBD (Database Driver) dla swojej bazy danych. Możesz to zrobić za pomocą CPAN (Comprehensive Perl Archive Network).

Przykład instalacji DBI i sterownika DBD::mysql:

cpan DBI
cpan DBD::mysql

Podstawowe połączenie z bazą danych

Po zainstalowaniu DBI i odpowiedniego sterownika, możesz nawiązać połączenie z bazą danych. Poniżej znajduje się przykład połączenia z bazą danych MySQL:

use DBI;

my $dsn = "DBI:mysql:database=nazwa_bazy;host=localhost";
my $username = "użytkownik";
my $password = "hasło";

my $dbh = DBI->connect($dsn, $username, $password, {
    RaiseError => 1,
    AutoCommit => 1,
}) or die $DBI::errstr;

print "Połączono z bazą danych!n";

Wykonywanie zapytań SQL

Po nawiązaniu połączenia z bazą danych, możesz wykonywać różne zapytania SQL. Poniżej znajduje się przykład wstawiania, aktualizowania i usuwania danych:

Wstawianie danych

my $sth = $dbh->prepare("INSERT INTO tabela (kolumna1, kolumna2) VALUES (?, ?)");
$sth->execute('wartość1', 'wartość2');

Aktualizowanie danych

$sth = $dbh->prepare("UPDATE tabela SET kolumna1 = ? WHERE kolumna2 = ?");
$sth->execute('nowa_wartość', 'wartość2');

Usuwanie danych

$sth = $dbh->prepare("DELETE FROM tabela WHERE kolumna1 = ?");
$sth->execute('wartość1');

Pobieranie danych

Oprócz modyfikowania danych, DBI umożliwia również pobieranie danych z bazy. Poniżej znajduje się przykład pobierania danych:

$sth = $dbh->prepare("SELECT kolumna1, kolumna2 FROM tabela WHERE kolumna3 = ?");
$sth->execute('wartość3');

while (my @row = $sth->fetchrow_array) {
    print "Kolumna1: $row[0], Kolumna2: $row[1]n";
}

Zamykanie połączenia

Po zakończeniu pracy z bazą danych, ważne jest, aby zamknąć połączenie:

$dbh->disconnect;

Przykład praktyczny

Załóżmy, że mamy bazę danych MySQL o nazwie „sklep”, która zawiera tabelę „produkty” z kolumnami „id”, „nazwa” i „cena”. Poniżej znajduje się kompletny przykład skryptu Perl, który łączy się z bazą danych, wstawia nowy produkt, aktualizuje jego cenę, pobiera wszystkie produkty i na końcu usuwa dodany produkt:

use DBI;

my $dsn = "DBI:mysql:database=sklep;host=localhost";
my $username = "root";
my $password = "";

my $dbh = DBI->connect($dsn, $username, $password, {
    RaiseError => 1,
    AutoCommit => 1,
}) or die $DBI::errstr;

# Wstawianie nowego produktu
my $sth = $dbh->prepare("INSERT INTO produkty (nazwa, cena) VALUES (?, ?)");
$sth->execute('Nowy Produkt', 100);

# Aktualizowanie ceny produktu
$sth = $dbh->prepare("UPDATE produkty SET cena = ? WHERE nazwa = ?");
$sth->execute(120, 'Nowy Produkt');

# Pobieranie wszystkich produktów
$sth = $dbh->prepare("SELECT id, nazwa, cena FROM produkty");
$sth->execute();

while (my @row = $sth->fetchrow_array) {
    print "ID: $row[0], Nazwa: $row[1], Cena: $row[2]n";
}

# Usuwanie dodanego produktu
$sth = $dbh->prepare("DELETE FROM produkty WHERE nazwa = ?");
$sth->execute('Nowy Produkt');

$dbh->disconnect;

Podsumowanie

DBI to potężne narzędzie do pracy z bazami danych w Perlu. Umożliwia łatwe nawiązywanie połączeń, wykonywanie zapytań SQL oraz zarządzanie danymi. Dzięki elastyczności i wsparciu dla wielu systemów baz danych, DBI jest idealnym wyborem dla programistów Perl, którzy potrzebują niezawodnego i efektywnego interfejsu do pracy z bazami danych.

W tym artykule omówiliśmy podstawowe kroki związane z instalacją DBI, nawiązywaniem połączeń, wykonywaniem zapytań oraz zamykaniem połączeń. Przedstawiliśmy również praktyczny przykład, który pokazuje, jak można wykorzystać DBI w rzeczywistym scenariuszu. Mamy nadzieję, że te informacje pomogą Ci w efektywnym korzystaniu z DBI w Twoich projektach Perl.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Scroll to Top