Perl Language
Enkel interaktion med databasen via DBI-modulen
Sök…
parametrar
Kolumn | Kolumn |
---|---|
$driver | Driver för DB, "Pg" för Postgresql och "mysql" för MySQL |
$database | ditt databasnamn |
$userid | ditt databas-id |
$password | ditt databaslösenord |
$query | lägg din fråga här, ex: "välj * från $ din_tabell" |
DBI-modul
Du bör se till att modulen DBI har installerats på din dator och följ sedan bälgstegen:
- använd DBI-modulen i ditt perl-skript
use DBI;
- Förklara några primära parametrar
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";
- Anslut till din databas
my $dbh = DBI->connect($dsn, $userid, $password);
- Förbered din fråga
my $query = $dbh->prepare("Your DB query");
Ex:
$my_query = qq/SELECT * FROM table WHERE column1 = 2/;
my $query = $dbh->prepare($my_query);
Vi kan också använda variabel i frågan, som nedan:
my $table_name = "table";
my $filter_value = 2;
$my_query = qq/SELECT * FROM $table_name WHERE column1 = $filter_value/;
- Kör din fråga
$query->execute();
* Obs: För att undvika injektionsattacker bör du använda platshållare ?
istället för att sätta din variabel i frågan.
Ex: du vill visa alla data från 'tabell' där kolumn1 = $ värde1 och kolumn2 = $ värde2:
my $query = $dbh->prepare("SELECT * FROM table WHERE column1 = ? AND column2 = ?;");
$query->execute($value1, $value2);
- Fletch dina data
my @row = $query->fetchrow_array();
lagra data som array
eller
my $ref = $sth->fetchrow_hashref();
lagra data som hashreferens
- Slutför och koppla bort DB
$sth->finish;
$dbh->disconnect();