Forum Programmation.perl Tester un 'NULL'

Posté par  .
Étiquettes : aucune
0
16
oct.
2006
Bonjour,

Je cherche bêtement à détecter dans mon script PERL quand ma requête SQL me renvoie un champ 'NULL' parmis les autres... Mais n'y arrive point.

Comment fait on ? J'ai testé defined et exists mais ça n'a pas marché...

Pour info, j' "use DBI();" sur une base MySQL V4.1 et je récupère mes enregistrements avec fetchrow_array.

Please Help Me...
Merci d'avance.
  • # Juste une idée

    Posté par  . Évalué à 1.

    Mais je ne m'y connais pas dans ce domaine particulier, As tu testé la chaine de caracteres "NULL" ? Ca peut paraitre idiot mais peut etre que ca marcherait.
    • [^] # Re: Juste une idée

      Posté par  . Évalué à 1.

      Ouep, en désespoir de cause j'ai essayé ça aussi.
      Mais bon en principe NULL est plus un état qu' une valeur.

      En tout cas ça marche pas. Merci quand même...
  • # beuh

    Posté par  (site web personnel) . Évalué à 2.

    comment indiqué dans la doc, chezmoicamarche(tm) avec undef :

        while (my @row = $sth->fetchrow_array) {
            print "values: " . (join ' ', map { defined($_) ? $_ : 'NULL' } @row) . "\n";
        }

    imprime :

        values: 705078 NULL 200 0 0

    si la deuxième colonne contient une valeur NULL.
    • [^] # Re: beuh

      Posté par  . Évalué à 1.

      Ton "style de DEV Perl" est encore un poil trop évolué pour mon nombre de neuronne....
      c'est le deuxième colonne qui m'échape surtout.

      En bref c'est defined() qui doit faire mon bohneur ?
      • [^] # Re: beuh

        Posté par  (site web personnel) . Évalué à 2.

        Faut pas s'effrayer, ce n'est pas si compliqué

        - defined($_) ? $_ : 'NULL'
        SI $_ est défini, la valeur est $_ SINON c'est la chaîne NULL, ( je crois que c'est du C standard cette syntaxe )

        - map { } @row
        consulte chaque élément $_ du tableau @row

        - join ' ', @tableau
        concatène dans une chaîne chaque élément du tableau le séparateur est l'espace ' '
        • [^] # Re: beuh

          Posté par  . Évalué à 1.

          Merci...
          J'avoue que c'était plus de la fénéantise de décortiquer le role de chaque fonction que de l'incompétence :-) J'ai attaqué le PERL il n'y pas si longtemps et mon style n'est pas encore très condensé.

          Je vais donc retenter d'utiliser defined().
      • [^] # Re: beuh

        Posté par  (site web personnel) . Évalué à 2.

        Effectivement :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.