Perl Language
Prosta interakcja z bazą danych za pośrednictwem modułu DBI
Szukaj…
Parametry
Kolumna | Kolumna |
---|---|
$driver | Sterownik dla DB, „Pg” dla Postgresql i „mysql” dla MySQL |
$database | nazwa twojej bazy danych |
$userid | Twój identyfikator bazy danych |
$password | twoje hasło do bazy danych |
$query | wpisz zapytanie tutaj, np .: „wybierz * z $ twoja_tabela” |
Moduł DBI
Upewnij się, że moduł DBI został zainstalowany na twoim komputerze, a następnie wykonaj poniższe kroki:
- użyj modułu DBI w swoim skrypcie perl
use DBI;
- Zadeklaruj niektóre podstawowe parametry
my $driver = "MyDriver";
my $database = "DB_name";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "your_user_ID";
my $password = "your_password";
my $tablename = "your_table";
- Połącz się z bazą danych
my $dbh = DBI->connect($dsn, $userid, $password);
- Przygotuj zapytanie
my $query = $dbh->prepare("Your DB query");
Dawny:
$my_query = qq/SELECT * FROM table WHERE column1 = 2/;
my $query = $dbh->prepare($my_query);
Możemy również użyć zmiennej w zapytaniu, jak poniżej:
my $table_name = "table";
my $filter_value = 2;
$my_query = qq/SELECT * FROM $table_name WHERE column1 = $filter_value/;
- Wykonaj zapytanie
$query->execute();
* Uwaga: Aby uniknąć ataku iniekcyjnego, należy użyć symboli zastępczych ?
zamiast wstawiać zmienną do zapytania.
Np .: chcesz wyświetlić wszystkie dane z „tabeli”, gdzie kolumna1 = wartość $ 1 i kolumna2 = wartość $ 2:
my $query = $dbh->prepare("SELECT * FROM table WHERE column1 = ? AND column2 = ?;");
$query->execute($value1, $value2);
- Uzupełnij swoje dane
my @row = $query->fetchrow_array();
przechowuj dane jako tablicę
lub
my $ref = $sth->fetchrow_hashref();
przechowuj dane jako odniesienie skrótu
- Zakończ i odłącz DB
$sth->finish;
$dbh->disconnect();