IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Perl avancé > Les modules > Exemple d'utilisation de quelques modules
        Module DBI
        Module CGI

rechercher
precedent    sommaire    suivant    telecharger


Module DBI
auteur : Djibril
Le module DBI (database interface) permet de faire des connections à une ou plusieurs bases de données telles Mysql, Postgresql, Oracle, Sybase, etc.... De ce fait, il vous sera possible d'intégrer des requêtes SQL dans vos scripts. Petit rappel : n'oubliez pas d'installer le module DBI et le driver qui va avec la base en question [confère 5)] Voici un petit listing de commandes à inclure dans le code Perl pour l'accès aux bases de données
  • use DBI;
  • En début du programme, il permet de faire appel au module DBI et spécifie qu'on va faire un accès aux bases de données. $db = DBI->connect("dbi:mysql:toto", 'login', 'mot_de_passe');
    • Requêtes du genre "create...", "update...", "insert into..." => $db->do("requête");
      • $db->prépare("requête"); : préparation de la requête
      • $db->exécute(); : exécution de la requête
      • $db->fetchrow_array(); : ligne retournée par la requête (ou lignes dans une boucle)
      • $db->finish(); : fin de la requête
    • Requêtes du genre "select..." Dans ce cas, 4 étapes doivent être exécutées :
  • Connexion à une base de données mysql s'appelant "toto" et dont l'accès nécessite un login et mot de passe. Exécution d'une requête SQL. En fonction du type de requête, la syntaxe n'est pas la même. On différentie deux types d'écriture.
  • $db->disconnect; : pour se déconnecter de la base de donnée en fin de programme.
Exemple: Insertion d'une ligne dans une table sql et récupération de données.
Voici une table sql

 titre        |acteur   |jour
---------------------------------
|shrek        |eddy     |lundi |
|couleur      |hopkins  |mardi   |
|coup_foudre  |robert   |mercredi|
---------------------------------

#########################################################################################
#Script Perl#
#########################################################################################
#!/usr/bin/perl -w
use strict;
use DBI;

  #Connection à la base de données postgresql premieredb
  my $dbp = DBI -> connect ("dbi:Pg:dbname=premieredb","login","mot_de_passe") or die "connection impossible!";
  
  #insertion d'une donnée
  $dbp->do("insert into film values ('test_titre', 'test_acteur','test_jour');")|| die "pb de requete : $DBI::errstr";   
  
  #requete postgresql
  my $requete="select acteur, jour from film;";
  
  #prépare la requête sql
  my  $version = $dbp->prepare($requete);

  #exécution de la requête sql
  $version-> execute() || die "pb de selection : $DBI::errstr";

  while (my  ($acteur, $jour) = $version -> fetchrow_array)
    {
     print "result: $acteur du jour $jour\n"; 
    }

  #spécifie la fin de la requête
  $version-> finish();
      
  #déconnection à la base de données
  $dbp->disconnect();

#########################################################################################
#Resultat#
#########################################################################################
result: eddy du jour lundi
result: hopkins du jour mardi
result: robert du jour mercredi
result: test_acteur du jour test_jour
nouvelle table
 titre        |acteur     |jour
------------------------------------
|shrek        |eddy       |lundi    |
|couleur      |hopkins    |mardi    |
|coup_foudre  |robert     |mercredi |
|test_titre   |test_acteur|test_jour|
------------------------------------
pour plus d'informations, voir la documentation cpan.


Module CGI
auteur : GLDavid
Le module CGI (Common Gateway Interface) est particulièrement utile pour l'écriture de pages Web au format HTML mais surtout à la récupération et au traitement de données provenant de formulaires. Prenons un exemple simple. Soit la page HTML suivante notée accueil.html :
<HTML>
<BODY>
Rentrez votre prénom : <BR>
<FORM NAME="form" ACTION="/cgi-bin/script.pl"
METHOD="POST">
<INPUT TYPE="text" NAME="prenom">
<INPUT TYPE="submit" VALUE="Envoyer">
</FORM>
</BODY>
</HTML>
Dans cette page, on crée un formulaire contenant un champ de texte à compléter. Le deuxième élément est le bouton de soumission des données vers le script pointé par la clause ACTION du formulaire. Il s'agit de notre script Perl nommé script.pl et se situant dans le répertoire cgi-bin de notre serveur Web (notre page aurait pu aussi s'appeler script.cgi mais n'oubliez pas de modifier votre lien dans la page précédente):
#!/usr/bin/perl -w

use CGI;
use strict;

my($cgi) = new CGI;
print "Content-type: text/html\n\n";

my($prenom) = $cgi->param("prenom");
print "Bonjour <b>".$prenom."</b>";
Nous y retrouverons toujours notre ligne shebang. En plus de notre clause use strict, nous appelons le module CGI. On initialise ensuite une variable $cgi. Cette variable contiendra finalement toutes les données contenues dans le formulaire précédent. La ligne suivante sert à ajouter l'en-tête nécessaire pour le typage de notre page. Dans une deuxième variable scalaire, on place le contenu de notre champ de texte. Notez que vous appelez tout simplement le nom du champ de texte. La suite nous permet d'afficher le contenu de ce champ en gras. Vous pouvez donc styliser avec des balises HTML usuelles le rendu de vos pages CGI.


rechercher
precedent    sommaire    suivant    telecharger

Consultez les autres F.A.Q's

Valid XHTML 1.1!Valid CSS!


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.