Je fais un transfert entre une base de données d'une application développée en assembleur et une base de données MyQSL.
Il existe un petit outil qui a été développé qui extrait les données de cette base de données assembleur sous forme de fichier texte de la forme suivante :
Code : Tout sélectionner
"champ1";"champ2";"champ3";
"champ1";"champ2";"champ3";
"champ1";"champ2";"champ3";
"champ1";"champ2";"champ3";
"champ1";"champ2";"champ3";Afin de produire des performances optimales, j'ai choisi la fonction SQL LOAD DATA INFILE
Voici un appercu de ma requete :
$str_requete = "LOAD DATA INFILE '".$racine."venus013.txt'
INTO TABLE cabinets
FIELDS TERMINATED BY ';' ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(NCODC, HEURES
Or je me suis rendu compte aujourd'hui que certains de mes champs contenaient des \ qui me décalaient mes champsOutre le fait que cette requete ne génère pas d'erreur dans ce cas, là, c'est assez genant de ce retrouver avec des valeurs fausses.
J'ai donc voulu utilise la clause ESCAPED BY, mais je me retrouve fasse à 2 problèmes :
PROBLEME 1 :
si j'écrit ça :
$str_requete = "LOAD DATA INFILE '".$racine."venus013.txt'
INTO TABLE cabinets
FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(NCODC, HEURES
J'ai une erreur qui me dit qu'un ' n'est pas ferméJ'ai donc tenté ça et,
PROBLEME 2 :
$str_requete = "LOAD DATA INFILE '".$racine."venus013.txt'
INTO TABLE cabinets
FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(NCODC, HEURES
Donne le même résultat qu'avant Je suis en train de tout casser alors avant que je ne tape sur un collègue, est-ce que quelqu'un voit une solution, une erreur ou un conseil ?
Merci infiniment par avance