Bonjour à tous,
J’ai lu beaucoup de bien, concernant Perl, je me suis donc tourné vers lui pour réaliser un script qui doit simplement extraire des infos d’une base de données pour en alimenter une autre avec ces mêmes infos.
En cherchant sur le net, j’ai trouvé à peu près comment faire, c’est à dire que le script, bien que non fini pour le moment, fonctionne.
Par contre, je suis à peu près sûr qu’il n’est pas vraiment correct, qu’il peut être plus simple, plus léger…
[code]#!/usr/bin/perl
use warnings;
use strict;
use DBI;
Parametres de connection a la DB ISPCONFIG
my $bd = ‘’;
my $serveur = '’;
my $identifiant = '’;
my $motdepasse = '*’;
Parametres de connection a la DB MX
my $bd2 = ‘’;
my $serveur2 = '’;
my $identifiant2 = '***’;
my $motdepasse2 = ‘********’;
Connection a la DB ISPCONFIG
print “Connexion a la base de donnees $bd\n”;
my $connect_ispconfig = DBI->connect( “DBI:mysql:database=$bd;host=$serveur;”,
$identifiant, $motdepasse, {
RaiseError => 1, }
) or die “Connection impossible a la base de donnees $bd !\n $! \n $@\n$DBI::errstr”;
Connection a la DB MX
print “Connexion a la base de donnees $bd2\n”;
my $connect_mx = DBI->connect( “DBI:mysql:database=$bd2;host=$serveur2;”,
$identifiant2, $motdepasse2, {
RaiseError => 1, }
) or die “Connection impossible a la base de donnees $bd2 !\n $! \n $@\n$DBI::errstr”;
Requete pour dupliquer les users
my $query1 = "SELECT id
,email
FROM spamfilter_users
";
my $query2 = "DELETE FROM users
";
my $query3 = “INSERT INTO users
(id
, priority
, policy_id
, email
, fullname
, local
) VALUES (?,?,?,?,?,?)”;
my $statement = $connect_ispconfig->prepare($query1);
my $statement2 = $connect_mx->prepare($query2);
my $statement3 = $connect_mx->prepare($query3);
$statement->execute;
$statement2->execute;
while (my @row = $statement->fetchrow_array) {
$statement3->execute($row[0], 7, 1, $row[1], $row[1],‘Y’);
print “$row[0] $row[1]\n”;
}[/code]
La dernière partie : Requête, me semble vraiment lourde.
Est-ce quelqu’un peut m’aider à alléger ça ?
Merci d’avance et joyeuses fêtes !