Perl Language
Eenvoudige interactie met database via DBI-module
Zoeken…
parameters
Kolom | Kolom |
---|---|
$driver | Stuurprogramma voor DB, "Pg" voor Postgresql en "mysql" voor MySQL |
$database | uw databasenaam |
$userid | uw database-ID |
$password | uw database wachtwoord |
$query | stel hier uw vraag, bijvoorbeeld: "selecteer * van $ uw_tabel" |
DBI-module
Zorg ervoor dat module DBI op uw pc is geïnstalleerd en volg de onderstaande stappen:
- gebruik de DBI-module in uw perl-script
use DBI;
- Verklaar enkele primaire parameters
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";
- Maak verbinding met uw database
my $dbh = DBI->connect($dsn, $userid, $password);
- Bereid je vraag voor
my $query = $dbh->prepare("Your DB query");
Ex:
$my_query = qq/SELECT * FROM table WHERE column1 = 2/;
my $query = $dbh->prepare($my_query);
We kunnen ook de variabele in de zoekopdracht gebruiken, zoals hieronder:
my $table_name = "table";
my $filter_value = 2;
$my_query = qq/SELECT * FROM $table_name WHERE column1 = $filter_value/;
- Voer uw zoekopdracht uit
$query->execute();
* Opmerking: moet u tijdelijke aanduidingen gebruiken om injectie-aanvallen te voorkomen ?
in plaats van uw variabele in de query te plaatsen.
Vb: u wilt alle gegevens uit 'tabel' weergeven waarbij kolom1 = $ waarde1 en kolom2 = $ waarde2:
my $query = $dbh->prepare("SELECT * FROM table WHERE column1 = ? AND column2 = ?;");
$query->execute($value1, $value2);
- Vul uw gegevens in
my @row = $query->fetchrow_array();
gegevens opslaan als array
of
my $ref = $sth->fetchrow_hashref();
gegevens opslaan als hashreferentie
- Voltooi en ontkoppel DB
$sth->finish;
$dbh->disconnect();