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

        


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->prepare("requête"); : préparation de la requête
      • $db->execute(); : 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.


        

Consultez les autres F.A.Q's

Ce document issu de www.developpez.com est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.