my $host="13.34.1.150";
my $database ="info";
my $user ="USER";
my $password ="FRIEND";
my $mysql_connect = Net::MySQL->new(
hostname => $host,
database => $database,
user => $user,
password => $password,
);
my $Load ="LOAD DATA INFILE \"e:/perl/INFO/CLIENT.txt\" INTO TABLE
info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n'";
#my $Load = "LOAD DATA INFILE 'e:/perl/INFO/CLIENT.txt' INTO TABLE
info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n'";
$mysql_connect->query(q{LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO
TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'});
#$mysql_connect->query(q{$Load} ); #************************** PAR CONTRE
CELA NE FONCTIONNE PAS ***********************
print $Load;
die $mysql_connect->get_error_message if $mysql_connect->is_error;
# my $record_set = $mysql_connect->create_record_iterator;
# while (my $record = $record_set->each) {
# printf "First column: %s\t Next column: %s\t Proche column: %s\n",
# $record->[0], $record->[1],$record->[2];
# }
$mysql_connect->close;
Ce code fonctionne mais n'est pas satisfaisant.
Lorsque j'utilise la variabe $Load j'obtiens ce message.
Check the manual that corresponds to your MySQL server version for the right
syn
tax to use near '$Load' at line 1 at infocentre.pl line 65.
Mon script perd de l'interet si je ne peux pas créer dynamiquement la
variable Load.
Avez vous une idée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fifre
Bonjour,
Merci. Je suis parti me fouetter dans un coin avant de répondre.
Sous mysql (comme sous oracle si mes souvenirs sont bons) cela permet de charger un fichier avec un séparateur défini dans une table (définie elle aussi)
Par rapport à ce script cela charge le fichier client txt dans la table client. De mon point de vue plus rapide que de faire lire le fichier et faire des inserts.
F.
"Jedaï" a écrit dans le message de news:bgb52n$suv$
Fifre wrote:
Bonjour,
J'ai le code suivant :
my $host="13.34.1.150"; my $database ="info"; my $user ="USER"; my $password ="FRIEND";
my $mysql_connect = Net::MySQL->new( hostname => $host, database => $database, user => $user, password => $password, );
my $Load ="LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'"; #my $Load = "LOAD DATA INFILE 'e:/perl/INFO/CLIENT.txt' INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'";
$mysql_connect->query(q{LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'}); #$mysql_connect->query(q{$Load} ); #************************** PAR CONTRE
CELA NE FONCTIONNE PAS *********************** print $Load; die $mysql_connect->get_error_message if $mysql_connect->is_error;
# my $record_set = $mysql_connect->create_record_iterator; # while (my $record = $record_set->each) { # printf "First column: %st Next column: %st Proche column: %sn", # $record->[0], $record->[1],$record->[2]; # } $mysql_connect->close;
Ce code fonctionne mais n'est pas satisfaisant. Lorsque j'utilise la variabe $Load j'obtiens ce message. Check the manual that corresponds to your MySQL server version for the right
syn tax to use near '$Load' at line 1 at infocentre.pl line 65.
Mon script perd de l'interet si je ne peux pas créer dynamiquement la variable Load. Avez vous une idée.
F.
Nomal ! q// correspond à des apostrophes normales "'", donc Perl
n'interpole pas $Load.... Je me demande ce que peut bien donner en SQL la requète '$Load' ? ;) Donc rajoute un q (qq// est équivalent à un double quote '"') ou mets directement des double quotes pour que ta variable soit interpolé ou carrément laisse ta variable comme ça, vu que c'est une string ça ne posera pas problème :
$mysql_connect->query( $Load );
Voilà :)
Bonjour,
Merci.
Je suis parti me fouetter dans un coin avant de répondre.
Sous mysql (comme sous oracle si mes souvenirs sont bons) cela permet de
charger un fichier avec un séparateur défini dans une table (définie elle
aussi)
Par rapport à ce script cela charge le fichier client txt dans la table
client.
De mon point de vue plus rapide que de faire lire le fichier et faire des
inserts.
F.
"Jedaï" <chaddai@wanadoo.fr> a écrit dans le message de
news:bgb52n$suv$1@news-reader1.wanadoo.fr...
Fifre wrote:
Bonjour,
J'ai le code suivant :
my $host="13.34.1.150";
my $database ="info";
my $user ="USER";
my $password ="FRIEND";
my $mysql_connect = Net::MySQL->new(
hostname => $host,
database => $database,
user => $user,
password => $password,
);
my $Load ="LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO TABLE
info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";
#my $Load = "LOAD DATA INFILE 'e:/perl/INFO/CLIENT.txt' INTO TABLE
info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";
$mysql_connect->query(q{LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO
TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'});
#$mysql_connect->query(q{$Load} ); #************************** PAR
CONTRE
CELA NE FONCTIONNE PAS ***********************
print $Load;
die $mysql_connect->get_error_message if $mysql_connect->is_error;
# my $record_set = $mysql_connect->create_record_iterator;
# while (my $record = $record_set->each) {
# printf "First column: %st Next column: %st Proche column: %sn",
# $record->[0], $record->[1],$record->[2];
# }
$mysql_connect->close;
Ce code fonctionne mais n'est pas satisfaisant.
Lorsque j'utilise la variabe $Load j'obtiens ce message.
Check the manual that corresponds to your MySQL server version for the
right
syn
tax to use near '$Load' at line 1 at infocentre.pl line 65.
Mon script perd de l'interet si je ne peux pas créer dynamiquement la
variable Load.
Avez vous une idée.
F.
Nomal ! q// correspond à des apostrophes normales "'", donc Perl
n'interpole pas $Load.... Je me demande ce que peut bien donner en SQL
la requète '$Load' ? ;)
Donc rajoute un q (qq// est équivalent à un double quote '"') ou mets
directement des double quotes pour que ta variable soit interpolé ou
carrément laisse ta variable comme ça, vu que c'est une string ça ne
posera pas problème :
Merci. Je suis parti me fouetter dans un coin avant de répondre.
Sous mysql (comme sous oracle si mes souvenirs sont bons) cela permet de charger un fichier avec un séparateur défini dans une table (définie elle aussi)
Par rapport à ce script cela charge le fichier client txt dans la table client. De mon point de vue plus rapide que de faire lire le fichier et faire des inserts.
F.
"Jedaï" a écrit dans le message de news:bgb52n$suv$
Fifre wrote:
Bonjour,
J'ai le code suivant :
my $host="13.34.1.150"; my $database ="info"; my $user ="USER"; my $password ="FRIEND";
my $mysql_connect = Net::MySQL->new( hostname => $host, database => $database, user => $user, password => $password, );
my $Load ="LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'"; #my $Load = "LOAD DATA INFILE 'e:/perl/INFO/CLIENT.txt' INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'";
$mysql_connect->query(q{LOAD DATA INFILE "e:/perl/INFO/CLIENT.txt" INTO TABLE info.client FIELDS TERMINATED BY ';' LINES TERMINATED BY 'n'}); #$mysql_connect->query(q{$Load} ); #************************** PAR CONTRE
CELA NE FONCTIONNE PAS *********************** print $Load; die $mysql_connect->get_error_message if $mysql_connect->is_error;
# my $record_set = $mysql_connect->create_record_iterator; # while (my $record = $record_set->each) { # printf "First column: %st Next column: %st Proche column: %sn", # $record->[0], $record->[1],$record->[2]; # } $mysql_connect->close;
Ce code fonctionne mais n'est pas satisfaisant. Lorsque j'utilise la variabe $Load j'obtiens ce message. Check the manual that corresponds to your MySQL server version for the right
syn tax to use near '$Load' at line 1 at infocentre.pl line 65.
Mon script perd de l'interet si je ne peux pas créer dynamiquement la variable Load. Avez vous une idée.
F.
Nomal ! q// correspond à des apostrophes normales "'", donc Perl
n'interpole pas $Load.... Je me demande ce que peut bien donner en SQL la requète '$Load' ? ;) Donc rajoute un q (qq// est équivalent à un double quote '"') ou mets directement des double quotes pour que ta variable soit interpolé ou carrément laisse ta variable comme ça, vu que c'est une string ça ne posera pas problème :