DBI (DataBase Independent) est, comme son nom l'indique,
un module Perl permettant aux développpeurs de disposer d'une
interface générique pour les bases de données
(MySQL, Oracle et autres). L'application utilisant une même
fonction quelle que soit la base, le code en devient beaucoup plus
portable, et surtout le développeur peut se concentrer sur
son code plutôt que de devoir apprendre à manipuler
une nouvelle BdD. DBI fait office de "traducteur", en
quelque sorte, entre le programme Perl et la base.
Premier
script
Dans un éditeur de texte, entrez le code suivant:
(fichier perl-dbi1.pl)
#!/usr/bin/perl
use DBI;
my $db = 'DBI:mysql:magasin:196.112.13.1';
my $utilisateur = 'xavier';
my $motdepasse = 'lnh';
my $dbconnect = DBI->connect($db, $utilisateur, $motdepasse);
my $sql = qq{ SELECT id FROM produits WHERE prix <= 12; };
$dbconnect->do($sql);
$dbconnect->disconnect();
Découpons ce petit programme en trois blocs:
1) use DBI; nous permet simplement
d'utiliser le module dans notre programme. Il doit bien évidemment
déjà être installé sur votre serveur
de test...
2) trois variables privées qui définissent notre
accès à la base. La première chaîne,
$db, est très important et
se construit de la manière suivante: 'DBI:type
de la base:nom de la base:adresse de la base'. Le caractère
":" sert de délimiteur
entre les trois informations.
Les deux variables suivantes sont explicites...
3) On attaque ensuite la base de données: la méthode
DBI->connect() utilise les trois
variables définies précédemment, et permet
de connecter notre application à la base choisie.
Il reste à envoyer des requêtes vers la base. Nous
la définissions en tant que chaîne (grâce à
l'opérateur qq), puis exécutons
la requête grâce à la méthode do()
de notre objet de connexion DBI $dbconnect.
Une fois la requête lancée, nous fermons la connexion
avec disconnect().
C'est là le plus simple que l'on puisse avoir en terme de
requête SQL, et cela vous montre bien la facilité avec
laquelle ce module peut aider à travailler avec les bases
de données.
Page 1 | 2
|