Load data local infile ne fonctionne pas chez hébergeur free
Forum Programmation : Load data local infile ne fonctionne pas chez hébergeur free
bonjour, je fais une petite application web qui permet d'importer des fichiers csv en bdd et vice versa. pour l'importation j'utilise la commande load data local infile. En local ça marche super bien mais sur mon hébergeur gratuit free ça ne fonctionne pas. La connexion est bonne puisque ça crée la structure la table mais le load data ne remplit absolument pas la table, elle reste vide. Et surtout je n'ai aucune erreur.
Code :
|
le chemin du fichier est bien le bon puisque j'ai vérifié en faisant
echo realpath("liste/fichier.csv" ) et j'obtiens le meme chemin que celui que je crée.
j'ai vu ici et là qu'il y avait un problème avec cette commande chez certains hébergeurs.
comment remédier à ce problème?
merci à tous
C'est pas faute d'avoir prévenu ... tu n'y peux rien. Changement d'hébergeur pour un avec une configuration correct la configuration du serveur est un des premier paramètre à connaitre avant un développement.
Répondre à SiM07
oups merde alors. alors je vais faire autrement merci de ta réponse quand meme.
par curiosité où voit on dans la configuration de l'hébergeur que c'est impossible?
Message édité par mcpherson le 26-05-2009 à 14:10:17
Répondre à mcpherson
Pour PHP tu fais un phpinfo().
Sinon pour MySQL c'est un peu plus compliqué, à dire vrai je le fais plus par connaissance du sujet. LOAD DATA c'est vraiment pas fait pour être utilisé dans du code PHP car ca entre souvent dans du backup ou des choses dont le traitement est long, donc à ne pas mettre en PHP ou il y a une limite de temps d'exécution quasiment systématiquement.
Bref tu es bon pour modifier tout ca et le faire en PHP, mais fait attention au temps d'exécution. Conseil, récupère les infos sur comment est configurer ton hébergeur est fait ressembler cette configuration avec celle que tu as en local.
Typiquement, depuis hier je suis en train de patcher du code (Solr PHP Client) pour qu'il n'utilise pas file_get_contents qui est désactivé pour les url. Sur une configuration basique WAMP, c'est activé. Bref, si je n'avais pas fait attention, j'aurais eu du code qui ne fonctionnait pas en production ... Donc j'ai remplacé par du Curl mais c'est pareil, il faut avoir Curl, qui sur du mutualisé est rare.
Répondre à SiM07
oui j'ai bien fait un phpinfo justement mais je ne trouve pas où c'est indiqué.
les modifications vont être assez rapides à faire donc c'est pas trop grave.
Mais je ne comprend pas quelque chose, si je fais un load data dans le terminal sql de phpmyadmin ça fonctionne donc pourquoi ça ne fonctionne pas dans du code php?
en tout cas merci de tes conseils clairs et limpides
Répondre à mcpherson
En général on met une configuration un peu différente pour phpmyadmin.
En tout cas, si tu te connectes avec le même user sur phpmyadmin que ce que tu as dans ton code c'est bizarre. Car c'est les droits MySQL sont fixé sur ce dernier. Mais à dire vrai, je ne connais pas exactement la configuration chez Free.
| Citation : 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 ».
|
Bref, si tu veux tester, il faut que tu créer un user sans droit file en local et comparer si le comportement est identique que chez free chez toi. Si oui, la probabilité que ce soit ça est juste énorme.
Répondre à SiM07
edit :
hey ça ne fonctionne plus en local c'est cool!!
maintenant est-il possible de changer les droits d'utilisateur sur phpmyadmin de free?car je ne trouve pas la base nommée "mysql" dessus pour changer mes droits
Message édité par mcpherson le 26-05-2009 à 15:21:44
Répondre à mcpherson
ah non tu peux pas
il y a une raison d'avoir des droits limités. Faut trouver un autre hébergeur ou bien avoir un serveur dédié et faire ce qu'on veut dessus. (et d'ailleurs sur un dédié à mon avis tu désactiverais ce genre de chose aux gens susceptible d'avoir des droits sur ta base (genre tu sous loue un peu ton serveur)).
Répondre à SiM07
ah bon d'accord!
tanpis alors je me sers de free comme hébergeur d'essai mais l'appli sera hébergé chez ovh et ça marche dessus.
merci de tes explications j'ai appris plein de choses
Répondre à mcpherson
tu as vérifié que ca marche dessus ? c'est un serveur dédié là bas ?
Répondre à SiM07
oui c'est un dédié et j'ai vérifié ça fonctionne correctement
Répondre à mcpherson
Il y a 426 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
