PERL boucle infini

Résolu
Bonjour,

j'ai une boucle "while" qui comme dit dans le titre est infini, j'aimerai l'utiliser pour afficher le résultat de ma requête SQL.

Voici le code :
my $dbh = DBI->connect( "dbi:mysql:dbname=$BaseDeDonnees;host=$NomHote;",  
                           $login, $MotDePass )  
                  or die "Connection impossible à la base de donnees $BaseDeDonnees !";  
   
my $lpriv = $dbh->prepare("SELECT nom, link, EPI FROM chizu_link WHERE chizu_link.nom = '$params[0]' OR chizu_link.idani = '$params[0]'ms[1]'");  
      $lpriv->execute() or die "Echec requete\n";                    
     while(@priv = $dbh->selectrow_array($lpriv))  
     {  
          $conn->privmsg($event->{'nick'}, "$priv[0] $priv[2] : $priv[1]");  
       $conn->print("<$nick>\t| $priv[0] $priv[2] : $priv[1]");  
     }  
$dbh->disconnect();


En PHP je n'ai jamais eu de soucis avec mes boucles.
J'utilise la dernières version du module DBI et DBD::Mysql .

2 réponses

  1. Hum ...
    J'enlèverai l'@ de
     @priv = $dbh->selectrow_array
    0
    1. je viens d'essayer si j'enlève le "@" de "@priv = $dbh->selectrow_array", PERL génère une erreur de plus j'avais oublié de remettre le "my" devant "@priv..." sans il ne compile pas.

      Je viens de trouver la solution. Voici le code de la boucle :

      while(my @priv = $lpriv->fetchrow_array)
      {
        $conn->privmsg($event->{'nick'}, "$priv[0] $priv[2] : $priv[1]");
        $conn->print("<$nick>\t| $priv[0] $priv[2] : $priv[1]");
      }
      0