[perl]Variable avant et après "use strict;&qu
kepon
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour, voilà j'ai un script perl auquelle je veu ajouter une fonction de création de base de donnée suivant un utilisateur... la variiable $user1 est valide dans la 1er partie du script mais pas dans la 2de... (use strict;)... donc voilà mon bute est de que $user1 = $user2 mais comment faire???
voilà un bout de mon code :
voilà un bout de mon code :
#!/usr/bin/perl
#1er PARTIE DU SCRIPT
#tous le début du script
$user1 = "toto";
#tous le rest de mon script...
#2ème partie du script
use strict;
use DBI();
# Connect to the database.
my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",
"root", "passroot",
{'RaiseError' => 1});
my $user2 = $user1;
$dbh->do("CREATE DATABASE $user2");
# Disconnect from the database.
$dbh->disconnect();
A voir également:
- [perl]Variable avant et après "use strict;&qu
- Avant browser - Télécharger - Navigateurs
- 503 use auth first - Forum Réseau
- Comment remettre ma page d'accueil comme avant - Guide
- Comment revenir à ma page d'accueil "google.fr" ? ✓ - Forum Google Chrome
- Copain d'avant - Forum Réseaux sociaux
3 réponses
Salut,
Donc tu as le descripteur de ta base de donnée mysql dans la variable $dbh.
Ensuite tu fait un $dbh->do("CREATE DATABASE $user2) qui n'est pas logique.
Dans une base de donnée on peut créer une table mais pas une autre base.
En ce qui concerne les variables $user1 et my $user2, je ne vois pas la raison pour laquelle tu n'utilise pas use strict au début de ton script. Tu peut entourré avec des accolades {} les parties de script pour limiter la portée de tes variables.
Mais tu fais comme tu veux.
Voilà une solution pour ton problème avec les variables $user1 et my $user2
# Connect to the database.
my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",
"root", "passroot",
{'RaiseError' => 1});
my $user2 = $user1;
$dbh->do("CREATE DATABASE $user2");
# Disconnect from the database.
$dbh->disconnect();
Donc tu as le descripteur de ta base de donnée mysql dans la variable $dbh.
Ensuite tu fait un $dbh->do("CREATE DATABASE $user2) qui n'est pas logique.
Dans une base de donnée on peut créer une table mais pas une autre base.
En ce qui concerne les variables $user1 et my $user2, je ne vois pas la raison pour laquelle tu n'utilise pas use strict au début de ton script. Tu peut entourré avec des accolades {} les parties de script pour limiter la portée de tes variables.
Mais tu fais comme tu veux.
Voilà une solution pour ton problème avec les variables $user1 et my $user2
#! /usr/bin/perl
$user1="toto";
sub var { return $user1 }
use strict;
# my $user2=$user1 ne fonctionne pas à cause de use strict
#Global symbol "$user1" requires explicit package name
my $user2=var;# en revanche la fonction var nous retourne $user1
print "$user2\n";# maintenant $user2 vaut toto