IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Creation module de connection à des bases de données


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut Creation module de connection à des bases de données
    Bonjour,

    Je reprends actuellement un script perl dans lequel je trouve dans les premières lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    use strict;
    use DBI;
    use CGI;
    use SWF qw(:ALL);
    use connect ('connect');
     
    my $db = connect("database1");
    my $db2 = connect("database2");
    Je m'y connais pas sur l'emploi des modules, mais ce qui me pose problème c'est le use connect, qui je pense est un module crée par le programmateur.

    Du coup en regardant la doc, j'ai commencé à créer un fichier .pm :

    package connect;
    use strict;
    use DBI;
    use vars qw(@ISA @EXPORT);
    use Exporter;
    @ISA = qw (Exporter);
    @EXPORT = qw (connect );

    sub connect { ?? }
    1;

    Est ce que ça vous paraît correct?
    Dans la fonction , je n'ai rien écris mais si vous avez des idées, je suis preneur. Et dernière question je dois placer ce fichier dans le même répertoire que le script qui appel ce module ou plutot dans le dossier /usr/lib/perl5/ ou autre...

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    Au final j'ai rempli ma fonction ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $base=shift @_;
    my $database  = DBI -> connect ("DBI:mysql:$base:localhost",'NomUser','Password')
    Et j'ai placé dans le dossier /usr/lib/perl5 ...

    Ca me parait pas mal, maintenant j'ai un autre problème avec une internal error sur le serveur...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    Wouaikéééé, bon au final mon module donne ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package connect;
    use strict;
    use DBI;
    use vars qw(@ISA @EXPORT);
    use Exporter;
    @ISA = qw (Exporter);
    @EXPORT = qw (connect);
     
    sub connect {
    my $base=shift @_;
    my $database  = DBI -> connect ("DBI:mysql:$base:localhost",'utilisateur','password');
    return $database;
    }
    1;

    et il est appelé dans un autre script de cette façon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    use connect ('connect');
     
    my $db = connect("database1");
    my $db2 = connect("database2");
    Désole de "pourrir" le forum avec ce topic mais ça m'aide à poser les choses et les résoudre par la même occasion.
    Enfin je sais tjs pas si c'est correct

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    Personne pour me confirmer que ma méthode est bonne?
    Merci.

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Ou as tu récupéré ce code ? sur le net ou un collègue. Est tu sûr de la fonction de ce module connect ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Par défaut
    J'ai récupéré un script d'un collègue qui fait appel à connect mais je n'ai pas le script connect.

    Mon script débute par les lignes qui suivent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    use connect ('connect');
     
    my $db = connect("database1");
    my $db2 = connect("database2");
    Je me suis donc dis que Connect était un module crée par le programmeur pour se connecter à des bases de données sans avoir à taper tout les paramètres de connexion à chaque fois qu'il se connecte à une base

    Je suis débutant en perl donc bon...

    J'ai donc cherché sur le net comment construire un module et je me suis inspiré des lignes de code que j'ai trouvé pour créer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    package connect;
    use strict;
    use DBI;
    use vars qw(@ISA @EXPORT);
    use Exporter;
    @ISA = qw (Exporter);
    @EXPORT = qw (connect);
     
    sub connect {
    my $base=shift @_;
    my $database  = DBI -> connect ("DBI:mysql:$base:localhost",'utilisateur','password');
    return $database;
    }
    1;
    ou utilisateur et password sont respectivement le nom que jutilise(et le pass) pour me connecter à la base.

    J'ai donc écrit çela dans un fichier connect.pm et je l'ai placé dans usr/lib/perl. Eclipse semble me le trouver puisqu'il efface l'erreur initialement présente à coté de use connect.

    J'ai d'autres choses à corriger dans le script de mon collègue avant qu'il soit complétement fonctionnel donc quand je charge son script dans le navigateur (le script est un script CGI) j'ai des erreurs encore je pense. (enfin rien ne s'affiche...)
    D'ailleurs une question au passage, y'a t'il possiblité d'afficher des erreurs dans le navigateur quand on teste un script CGI ? Genre perl - w dans le shebang m'affichera t'il le genre d'erreur rencontré dans le script?

    Bref désolé pour toutes ces questions de débutant, mais je viens de commencer un job dans un milieu sans informaticien autour alors je préfère poser des questions sur ce forum plutôt que de rester bloquer sur des trucs ou certains auraient une réponse rapidement.

    Donc ma question initiale est de savoir si ce que j'ai fait est correct, si mon module de connection est correct...après je sais que j'aurais pu faire un message d'erreur en cas de mauvaise connection quand j'essaye de me connecter pour vérifier si mon module est foireux mais je viens d'y penser en écrivant ces lignes...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/03/2012, 02h24
  2. Réponses: 1
    Dernier message: 01/04/2011, 14h04
  3. Connection à une base de données
    Par rodri dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/07/2004, 13h03
  4. structure des bases de données Palm
    Par nomdutilisateur dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/01/2004, 17h47
  5. Réponses: 3
    Dernier message: 24/10/2003, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo