Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1952 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°807801
panzemeyer
The torture never stops
Posté le 27-07-2004 à 16:34:24  profilanswer
 

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
mood
Publicité
Posté le 27-07-2004 à 16:34:24  profilanswer
 

n°807835
jagstang
Pa Capona ಠ_ಠ
Posté le 27-07-2004 à 17:07:30  profilanswer
 

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?  
n°807848
panzemeyer
The torture never stops
Posté le 27-07-2004 à 17:18:04  profilanswer
 

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à.

n°807853
jagstang
Pa Capona ಠ_ಠ
Posté le 27-07-2004 à 17:21:19  profilanswer
 

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?  
n°807861
panzemeyer
The torture never stops
Posté le 27-07-2004 à 17:27:15  profilanswer
 

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
n°808052
panzemeyer
The torture never stops
Posté le 27-07-2004 à 21:04:15  profilanswer
 

Ç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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 

Sujets relatifs
Besoin d'aide en JSP concernant l'affichage[MySQL] Crypter les acces a une base de données
Exécution auto d'un script SQL sur un serveur MySQLquelqu'un connait e-xoops? il me faut un peu d'aide
[VB][ADO] Erreur Data Link[PHP] peut on inserer une fonction php dans une requete Mysql ?
Min max par variable MYSQL/PHPAcces Mysql
Plus de sujets relatifs à : [mySQL] Besoin d'aide pour la fonction "LOAD DATA INFILE"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR