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 :

selectall_arrayref plante


Sujet :

SGBD Perl

  1. #1
    Membre du Club Avatar de Batou
    Inscrit en
    Mars 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 71
    Points : 62
    Points
    62
    Par défaut selectall_arrayref plante
    Bonjour tout le monde,

    Je suis en train de faire un script PERL pour me connecter a une base MySQL.
    Via une page CGI, je fais une interface de recherche sur cette base.
    cependant, quand j'entre dans la page CGi des criteres qui ne doivent donner aucun resultat, le script plante.

    J'ai reussi a localiser l'endroit ou ca plante :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    sub search_db {
      my($has_skeys) = @_;
     
      # ----- the returned array
      my($arr_articles,$sca_article_ind);
      $sca_article_ind = 0;
      # ----- connect
      my ($db,$host,$id,$pw,$dsn,$dbh) = connect_db();
      foreach my $parameter (keys %$has_skeys) {
        my $request = qq{SELECT * FROM tab_news WHERE $parameter = $$has_skeys{$parameter}};
        my $sth_select = $dbh->prepare($request);
     
    # ----- ca vient de planter a la ligne superieure
     
        my $arr_select = $dbh->selectall_arrayref($sth_select);
        print "yo\n<BR>$arr_select";
        # ----- read the datas
        foreach my $arr_record &#40;@$arr_select&#41; &#123;
          my $arr_artdatas;
          foreach my $argument &#40;@$arr_record&#41; &#123;
    	 print " et $argument,\n";
    	 push @$arr_artdatas, $argument;
          &#125;
          # ----- store inside array full of hashes
          $$arr_articles&#91;$sca_article_ind&#93; = &#123;
    					  database_reference => $$arr_artdatas&#91;0&#93;,
    					  absolute_reference => $$arr_artdatas&#91;1&#93;,
    					  data_entry_date => $$arr_artdatas&#91;2&#93;,
    					  article_date => $$arr_artdatas&#91;3&#93;,
    					  article_title => $$arr_artdatas&#91;4&#93;,
    					  article_url => $$arr_artdatas&#91;5&#93;,
    					  article_content => $$arr_artdatas&#91;6&#93;,
    					  categories1 => $$arr_artdatas&#91;7&#93;,
    					  categories2 => $$arr_artdatas&#91;8&#93;
    					 &#125;;
          $sca_article_ind ++;
        &#125;
      &#125;
      return&#40;$arr_articles&#41;;
    &#125;
    Voila,

    Pour contourner cette erreur, j'ai deja essaye de mettre un test avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    defined $dbh->prepare&#40;$request&#41;
    Mais ca plante toujours autant.

    Avez vous des idees ?
    Ciao, merci et bon courage !
    "It has to start somewhere, It has to start sometime.
    What better place than here, what better time than now?
    " [RATM]

  2. #2
    Membre du Club Avatar de Batou
    Inscrit en
    Mars 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 71
    Points : 62
    Points
    62
    Par défaut soluce
    Hello,
    Je me reponds a moi mm apres avoir lu le "friendly Manual" !

    en fait, il suffit de mettre la ligne qui pose probleme dans une boucle local avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        &#123;
          # ----- to let the error happen
          local $dbh->&#123;RaiseError
          unless &#40;defined &#40;$dbh->selectall_arrayref&#40;$sth_select&#41;&#41;&#41; &#123;
    	return&#40;$arr_articles&#41;;
          &#125;
        &#125;
    Voila, c'etait pas conmplique !
    Ciao et merci
    Batou
    "It has to start somewhere, It has to start sometime.
    What better place than here, what better time than now?
    " [RATM]

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

Discussions similaires

  1. Modéliser une planète?
    Par shifty.net dans le forum OpenGL
    Réponses: 10
    Dernier message: 30/08/2004, 15h13
  2. [MFC] DoModal() plante
    Par barthelv dans le forum MFC
    Réponses: 3
    Dernier message: 29/07/2004, 11h56
  3. Que se passe-t-il en interne si un ROLLBACK plante ?
    Par jack554 dans le forum Administration
    Réponses: 4
    Dernier message: 07/04/2004, 13h55
  4. Réponses: 11
    Dernier message: 17/03/2003, 11h56
  5. Réponses: 2
    Dernier message: 23/10/2002, 14h38

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