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

SGBD Perl Discussion :

problème avec la requete update


Sujet :

SGBD Perl

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut problème avec la requete update
    Bonjour à tous
    je suis en stage dans un FAI en Tunisie, et on m'a confié la tache d'envoi de sms aux clients, en gros le but de mon programme c'est de remplacer des mots clés par ceux existants, jusque là le progamme marche très bien mais dès que j'ai voulu faire la gestion d'erreur et la création d'une requête de mise à jour je rencontre un problème

    voila mon code

    #!/usr/bin/perl

    use DBI;
    $dbh = DBI->connect("DBI:mysql:envoi_sms","root","");
    print("connexion réussie !\n ");


    sub update {
    $selec->$dbh->do("UPDATE client SET client.resultat=$_[0],client.obs=$_[1] where client.id=$_[2]")|| die "Pb de requête : $DBI::errstr";
    $selec->finish;
    }



    sub is_empty {
    return (length($_[0]));
    }

    sub constr_msg {
    $se=$dbh->prepare("select num_adsl,login_adsl,passwd_adsl,debut_facture,echeance_facture,rest_a_payer from client where client.id=$_[0]");
    $se->execute;
    ($a,$b,$c,$d,$e,$f)=$se->fetchrow_array;
    %h=(num_adsl,$a,login_adsl,$b,passwd_adsl,$c,debut_facture,$d,echeance_facture,$e,rest_a_payer,$f);
    @cle=(num_adsl,login_adsl,passwd_adsl,debut_facture,echeance_facture,rest_a_payer);
    foreach $i (@cle)
    {

    $_[1]=~s/$i/$h{$i}/;



    if($_[1]=~/$i/)
    {
    $t=is_empty($h{$i});
    if($t==0) {
    &update("6","manque d'information","$_[0]");
    exit;
    }
    }





    }
    #print("$_[1] \n");
    if(length($_[1])>160)
    {
    $long=length($_[1]);

    &update("3","taille supérieur à 160 et est égale à $long ","$_[0]");
    }
    return($_[1]);
    $se->finish;
    }

    $sel=$dbh->prepare("select Distinct m.id, m.body from client c, smsing s,message_model m where c.smsing=s.id
    and m.id=s.message");
    $sel->execute|| die"probleme de sélection !\n\n\n";
    while(($id,$bo)=$sel->fetchrow_array){

    #print"corps :$bo\n\n";

    $sele=$dbh->prepare("select distinct c.id from client c,smsing s,message_model m where c.smsing=s.id and s.message=$id");
    $sele->execute || die"pb de selection 2 !";
    while(($ib)=$sele->fetchrow_array){
    $res=&constr_msg("$ib","$bo");
    print("$res\n\n");

    #print"$id id du message , $ib id du client \n";
    }

    }
    $sele->finish;
    $sel->finish;


    l'erreur qui s'affiche est :

    can't call method "DBI::db=HASH(0x19e565c)" on an undefined value at ...line 9 (c'est la ligne ou il y a la requête de mise à jour)



    je tiens à préciser que je suis débutant en perl et que j'ai fait plusieurs recherches avant de poster ce message


    merci d'avance

    ce forum est une bénédiction même nos profs nous le conseillent

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Tu devrais utiliser les balises 'code' afin de rentre ton script lisible.

    Tu as utilisé -> au lieu de =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selec = $dbh->do("UPDATE client ...
    -- Jasmine --

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    c'est une erreur de débutant
    mais j'ai encore un autre message
    maintenant j'ai une erreur de syntaxe

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Quelle erreur?
    Rajoute les balises CODE dans ton premier texte stp.
    -- Jasmine --

Discussions similaires

  1. [PHP 5.0] Problème avec une requete update php
    Par diblasio dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2010, 20h35
  2. [MySQL] Problème avec la requete Update
    Par ala1986 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/03/2010, 15h00
  3. [MySQL] problème avec 2 requetes pour 1 même tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/11/2005, 12h50
  4. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19
  5. problème avec ma requete contenant un "in" :
    Par seb78000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/07/2005, 16h38

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