TUTORIELS 
Introduction au module DBI de Perl

Page 1 | 2

Première approche du module d'abstraction de base de données du langage Perl, avec le développement d'un mini-moteur de recherche.
 (28 janvier 2003)
 

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

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page