Page 1 sur 1
intégrer un fichier csv dans une table mysql
Posté : 10 août 2006, 10:47
par eltonino
Bonjour,
Je cherche à intégrer via du code PHP un fichier csv dans une table de ma base Mysql, pour ce faire j'utilise la requete suivante :
LOAD DATA LOCAL INFILE 'J:/intranet/modules_externes/test.csv' INTO TABLE `test` FIELDS TERMINATED BY ';' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
Pour info mon fichier csv est formaté de la manière suivante :
id;nom;prenom;prenom2;adresse;adresse2;ville;type
id;nom;prenom;prenom2;adresse;adresse2;ville;type
Mais cela ne marche pas rien ne se passe, meme en esseyant directement de lancer ma requete depuis ma console phpmyadmin, et je n'ai aucun message d'erreur.
Si jamais quelqu'un connait la solution à mon problème...
Merci d'avance
Posté : 10 août 2006, 10:49
par zeus
Modération : le 1er sujet de la FAQ précise qu'il ne faut pas poser de questions dans la FAQ
sujet déplacé
Posté : 10 août 2006, 10:51
par zeus
Est-ce que le lecteur J est accéssible en lecture depuis le serveur ?
intégration d'un fichier csv dans une table mysql
Posté : 10 août 2006, 10:53
par eltonino
Bonjour,
Oui le lecteur J: se trouve sur le serveur lui-même, d'ailleurs toutes les pages de mon site se trouve sur se lecteur J:
Posté : 10 août 2006, 10:57
par zeus
Est-ce que je peut savoir comment est-ce que tu lance cette commande ?
intégration d'un fichier csv dans une table mysql
Posté : 10 août 2006, 11:02
par eltonino
Dans un premier temps je me connecte sur ma page
http://127.0.0.1/mysql/ de mon serveur, je me place sur la table concernée et via l'onglet SQL je tape ma requete et je l'execute.
intégration d'un fichier csv dans une table mysql
Posté : 10 août 2006, 11:08
par eltonino
Pour info si je passe par le menu importer de ma console mysql et que je selectionne le chemin de mon fichier puis je coche CSV via LOAD DATA et Utiliser l'option LOCAL puis executer, là mon importation fonctionne mais mon souhait est de le faire via mon code php et là impossible...
Posté : 10 août 2006, 11:09
par zeus
En consultant cette page (
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html), j'ai noté quelques points à creuser :
Pour des raisons de sécurité, lorsque les fichiers sont lus sur le serveur, ils doivent se trouver dans le répertoire de la base de données courante, ou bien être lisible par tous. Pour utiliser la commande LOAD DATA INFILE sur des fichiers du serveur, vous devez avoir le droit de FILE sur le serveur. See Section 5.5.3, « Droits fournis par MySQL ».
Depuis MySQL 3.23.49 et MySQL 4.0.2 (4.0.13 sur Windows), LOCAL fonctionne uniquement si votre serveur et votre client ont été configuré pour. Par exemple, si mysqld a été lancé avec --local-infile=0, LOCAL ne fonctionnera pas. See Section 5.4.4, « Problèmes de sécurité avec LOAD DATA LOCAL ».
De plus, utiliser le mot clé LOCAL n'est pas très recommandé
Utiliser LOCAL est plus lent que de laisser le serveur accéder directement aux fichiers, car le contenu du fichier doit être envoyé via le réseau au serveur. D'un autre coté, vous n'aurez pas besoin de droits de FILE pour faire un chargement local.
intégration d'un fichier csv dans une table mysql
Posté : 10 août 2006, 14:41
par eltonino
Bon apres de nombreuses recherches il s'avere que ce n'est pas trop possible via easyphp d'integrer des données dans une table à partir de code php, je poursuis mes recherches...
En tous les cas merci beaucoup pour ces infos.