Flitz | Bonjour à tous. Sorry de ma question mais je ne parviens pas à réaliser ce que je voudrais ou du moins je ne comprends rien ;-).
Je dispose d'un script qui appelle un autre script et j'aimerais lui faire passer une référence. Je m'explique, le premier script appelle le deuxième pour chaque éléments d'un réseau. Ce deuxième script recueille alors des infos qu'il stocke dans une base de données mysql. Afin d'éviter que le deuxième script ne recrée une connexion à la BD pour chaque élément, j'aimerais initialiser la connexion dans le premier script et passer au deuxième la structure de données de cette connexion. Cependant je n'y parviens pas. Auriez-vous une petite idée de comment je pourrais faire ça ?
Je vous joints les deux bouts de compte :
Premier script
-------------
Code :
- $host="localhost";
- $database="telephonie";
- $user="";
- $password="";
- $dbh_tel = Mysql->connect($host, $database, $user, $password);
- for(my $ii=0; $ii<$nblines; $ii++) {
- $xx = 1;
- @arr = $sth->fetchrow;
- $ip = $arr[0];
- $nom_switch = $arr[1];
- # $ref_db = \$dbh_tel; ----> ????
- system('/usr/local/bin/routeur/scriptinterf/scriptInterf1sw.pl $ip $nom_switch $ref_db &');
- #C'est ici que je n'arrive pas à passer la référence : si je mets des " dans la commande system alors il me prend la référence avec des parenthèses et j'ai des erreurs de compilations.
- }
|
Deuxième script
---------------
Code :
- $ip = $ARGV[0];
- $nom_switch = $ARGV[1];
- $dbh_tel = \$ARGV[2]; #On passe la BD en arg pour ne pas faire plein de connexions en meme temps.
- print "\n\n\n **** $dbh_tel\n\n\n";
- $stmt = "replace into `telephones` (`MAC`,`NUM_TEL`,`NOM`,`IP_TEL`,`ETAT`,`SWITCH`,`INTERFACE`,`DATE_MAJ`) values ('$mac','$numero','$nom_user','$iptel','$state','$nom_switch','$interf','$now');";
- #print "$stmt\n";
- $sth_tel = $dbh_tel->query($stmt);
|
je vous remercie d'avance pour votre aide
Message édité par Flitz le 30-05-2007 à 14:39:34
|