Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1767 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  DBD::Mysql DBI CGI vs Script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DBD::Mysql DBI CGI vs Script

n°1434601
Danjer
Posté le 31-08-2006 à 20:19:29  profilanswer
 

Bonjour a tous,
 
J'ai un probleme mystique :  
J'ai un module perl qui fait des trucs :
 - Session Telnet
 - Session FTP
 - Session Mysql
 
En gros un s'est un truc qui fait des operations repetitives sur plusieurs machnines en meme temps. Bref tout ca est orchestre par des donnees dans une base Mysql.
 
Le gros du code est dans un modules (tout objet) pour etre appele aussi bien par script que par un cgi.
 
Dans l'ensemble ca fonctionne bien. Le truc doit faire une 50aine de requetes...
Et pour une seule de ces requetes

$sth->fetchall_arrayref

me renvoit :
 - undef en CGI
 - la bonne valeur en script.
 
Je precise j'ai seule ligne de code dans le script et le cgi. Pas de message d'erreur... rien.
Je comprends pas...


---------------
Cdl, Danjer
mood
Publicité
Posté le 31-08-2006 à 20:19:29  profilanswer
 

n°1434865
franceso
Posté le 01-09-2006 à 09:31:31  profilanswer
 

et le `$sth->execute' précédent marche bien ?


---------------
TriScale innov
n°1434874
Danjer
Posté le 01-09-2006 à 09:44:59  profilanswer
 

franceso a écrit :

et le `$sth->execute' précédent marche bien ?


Ouais... Alors en fait j'ai compris...
 
le code fait un truc du genre :

Code :
  1. if ($chaine =~ /(\d+)-(\d+)/) {
  2.   $obj->ma_methode_qui_tue($1,$2);
  3. }


 
Conclusion :
 - En script ca marche
 - En cgi ca marche pas. ($1,$2) ne passe pas bien... pourtant si je les affichent j'ai bien les bonnes valeurs. Les valeurs de $1 et $2 se perdent...
 

Code :
  1. if ($chaine =~ /(\d+)-(\d+)/) {
  2.   my $var1=$1;
  3.   my $var2=$2;
  4.   $obj->ma_methode_qui_tue($var1,$var2);
  5. }


 
La ca marche dans les deux cas cgi et script. En fait la methode que j'appelle n'existe pas elle est gere par AUTOLOAD:

Code :
  1. sub AUTOLOAD {
  2.   my $self = shift;
  3.   my $name = '';
  4.   if ($AUTOLOAD =~ /^.*?::(.*)$/) {
  5.     $name = $1;
  6.   }
  7.   my $hash_mode = 0;
  8.   if ($name =~ /_hash$/i) {
  9.     $hash_mode = 1;
  10.     $name =~ s/_hash$//i;
  11.   }
  12.   if ($name =~ /_shash$/i) {
  13.     $hash_mode = 2;
  14.     $name =~ s/_shash$//i;
  15.   }
  16.   if (defined $self->{sql}->{$name}) {
  17.     if ($name =~ /^insert/i or $name =~ /^update/i) {
  18.       return $self->dbexecute_insert($name, @_);
  19.     } else {
  20.       if ($hash_mode) {
  21. return $self->dbexecute_hash($hash_mode,$name, @_);
  22.       } else {
  23. return $self->dbexecute($name, @_);
  24.       }
  25.     }
  26.   }
  27. }


 
J'ai l'impression que c'est ca qui fait que je perd les valeurs de $1 et $2... Mais j'ai que des suppositions pas de cetitude.


---------------
Cdl, Danjer
n°1434881
franceso
Posté le 01-09-2006 à 09:52:29  profilanswer
 

Danjer a écrit :

le code fait un truc du genre :

Code :
  1. if ($chaine =~ /(\d+)-(\d+)/) {
  2.   $obj->ma_methode_qui_tue($1,$2);
  3. }



effectivement, j'ai déjà rencontré des problèmes de ce genre et j'ai pris l'habitude de toujours recopier les $1, $2, ... dans des variables locales avant de les utiliser.
 
Mais ça n'explique quand même pas pourquoi ça foire en CGI et pas en script. :??:


---------------
TriScale innov
n°1434921
Danjer
Posté le 01-09-2006 à 10:41:02  profilanswer
 

franceso a écrit :

effectivement, j'ai déjà rencontré des problèmes de ce genre et j'ai pris l'habitude de toujours recopier les $1, $2, ... dans des variables locales avant de les utiliser.
 
Mais ça n'explique quand même pas pourquoi ça foire en CGI et pas en script. :??:


 
C'est peut-etre AUTOLOAD qui a un namespace particulier... Mais je comprends pas.


---------------
Cdl, Danjer

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  DBD::Mysql DBI CGI vs Script

 

Sujets relatifs
[MySQL] Probléme sur requete pas simple !Script
[mysql] trigger lors d'une insertion...Temps d'execution d'un script
Problème de compatibilité script AJAX/IEScript PageWeb Smilley
Base MySql sur free et gestion de traductions sur un site webprobleme action script, préchargement
script de verification ms_dosscript alternatifs pour connexion à un serveur MySQL
Plus de sujets relatifs à : DBD::Mysql DBI CGI vs Script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR