PERL boucle infini [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
samedi 19 décembre 2009
Statut
Membre
Dernière intervention
21 mai 2010
-
Messages postés
4
Date d'inscription
samedi 19 décembre 2009
Statut
Membre
Dernière intervention
21 mai 2010
-
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

Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
183
Hum ...
J'enlèverai l'@ de
 @priv = $dbh->selectrow_array
Messages postés
4
Date d'inscription
samedi 19 décembre 2009
Statut
Membre
Dernière intervention
21 mai 2010

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]");
}