[mySQL] Besoin d'aide pour la fonction "LOAD DATA INFILE"

Besoin d'aide pour la fonction "LOAD DATA INFILE" [mySQL] - SQL/NoSQL - Programmation

Marsh Posté le 27-07-2004 à 16:34:24    

Salut les gens,  
 
Je fais mes premiers pas en php/mySQL, et je rencontre quelques soucis pour importer un fichier txt dans une table à l'intérieur d'une bdd.  
 
J'utilise pour cela l'option "Insérer des données provenant d'un fichier texte dans la table". Le fichier txt en question contient des colonnes délimitées par des tabs et des lignes délimitées par des retours charriot. Le champs de texte ne sont délimités par aucun caractère particulier (en dehors des tabs). Donc je choisis les options en conséquence, valide, et voici ce que j'obtiens :  
 

Base de données collection audio - Table collection_audio sur le serveur localhost  
Erreur
 
requête SQL :  
 
LOAD DATA LOCAL INFILE 'F:\\Program Files\\EasyPHP1-7\\tmp\\php5E9.tmp' INTO TABLE `collection_audio` FIELDS TERMINATED BY '\t' ESCAPED BY '\\' LINES TERMINATED BY '\r'  
 
MySQL a répondu:
 
 
#1148 - Cette commande n'existe pas dans cette version de MySQL
[Documentation] · [Retour]


 
Comment je dois interpréter ce message d'erreur exactement ? J'utilise la dernière version de mySQL (mySQL 4.0.15 et phpmyadmin 2.5.3, inclus dans Easyphp) et je ne fais rien d'autre de me servir des fonctions qu'il me propose. Je comprends pas trop là.  :??:  
 
Merci de votre aide ;)
 
edit : bizarrement, le nom de fichier indiqué dans le message d'erreur n'est pas du tout celui que j'ai choisi avant de valider :pt1cable:


Message édité par panzemeyer le 27-07-2004 à 21:21:09
Reply

Marsh Posté le 27-07-2004 à 16:34:24   

Reply

Marsh Posté le 27-07-2004 à 17:07:30    

4.0.15 n'est pas la dernière version


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-07-2004 à 17:18:04    

Ah bon ? EasyPhp n'est pas à jour donc ? :??: Mais ça ne m'explique pas mon erreur. :/ Je vois pas comment une fonction qui est documentée dans la version que j'ai peut ne pas exister. Y a un problème quand même là.

Reply

Marsh Posté le 27-07-2004 à 17:21:19    

easyPhp n'est non seulement pas à jour, mais en plus ça crée que des problèmes....
 
je ne peux que tu conseille ceci : http://forum.hardware.fr/forum2.ph [...] 943&cat=10
 
sinon, tu as regardé dans la doc en ligne?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-07-2004 à 17:27:15    

Ok merci. Pour moi l'intérêt d'Easyphp est qu'il intègre tout (Apache, mysql, phpmyadmin, etc.).  
 
J'ai regardé la doc en ligne (pas claire pour un sous ceci dit). C'est justement dans cette doc que j'ai trouvé le post d'un gars qui explique comment importer facilement un txt dans une table. Le hic c'est que je fais la même chose et ça ne marche pas chez moi. :/  
 
http://dev.mysql.com/doc/mysql/en/LOAD_DATA.html
 

Citation :

LOAD command is easiest done without any fancy script writing or code. Comma (or someother) delimited file needed
 
Just call up phpMySql
- select your database and table
- press the SQL button along top of screen
- then select - enter data from a textfile into table - at bottom of screen
- Then fill in the boxes
 
- Location of source file - this will be on your own machine - just track through and select it
- Fields terminated by - change to commas if required
- column names - if the order in which the source file differs to your table list - list the order in which the source file should load into the table, by named field seperated by commas. like ... fieldname1,fieldname2 etc
I find it easist to write this to a simple NotePad file. Then copy and past to the Column Names  
 
I am just a newbie at this and was amazed at how straightforward it was
 
Gordon


Message édité par panzemeyer le 27-07-2004 à 17:27:44
Reply

Marsh Posté le 27-07-2004 à 21:04:15    

Ça y est j'ai finalement trouvé : il fallait décocher la case DATA LOCAL (cochée par défaut) et cocher la case DATA à la place, comme sur cette capture.
 
http://thomsattic.free.fr/screens/mysql.png
 
J'ai également buté sur le fait que mysql ne voulait pas importer de fichier txt au format UNICODE. En convertissant au format ANSI c'est passé tout seul. Mon fichier contenait plus de 20.000 entrée, apparemment ça ne passe pas non plus. En créant un fichier par bloc de 10.000 c'est passé. En tout cas le traitement est vraiment rapide : moins de 0,5 sec. pour traiter un txt de 10.000 lignes et 20 colonnes  :ouch:  
 
Y a moyen d'utiliser l'unicode avec mysql? Je paume pas mal de caractères dans l'affaire, j'aimerais bien les garder.  :??:


Message édité par panzemeyer le 27-07-2004 à 21:06:31
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed