[PHP-SQL] Requete qui ne s'exécute pas
Forum Programmation : [PHP-SQL] Requete qui ne s'exécute pas
Bonjour a tous !
Voila j'ai un problème avec une requete que je lance d'une page php et qui ne s'exécute pas.
En fait il s'agit de remplir une table grace a un fichier texte.
Ma démarche a été de le faire directement dans le programme sql front, ce qui m'a généré la ligne de code suivante:
LOAD DATA LOCAL INFILE '".$chemin."' INTO TABLE cost FIELDS TERMINATED BY ';' (ref,fresp_euroHT,fresp_retail,exp_euroHT,exp_Wsale,exp_retail,expsav_euroHT,expsav_Wsale,licencies_stock,licencies_prod,distri_world,id_couleur,opt)";
Ou je remplace $chemin par le chemin du fichier
La requete fonctionne bien puisque je l'ai testé dans l'analyseur de requete sous SQL et elle s'exécute bien, mais quand je la lance de la page php, rien ne se passe.
J'ai aucun problème de connexion avec la base car j'exécute plein d'autre requètes sur la même page...
Je ne comprends pas d'ou provient le problème..
HELP
Merci
Salut,
As tu tous les droits necessaires pour executer ta requete "LOAD"
Sinon si ton hebergeur propose phpMyadmin essaye d executer ta requete =)
S'il ne ce passe rien tu dois surement avoir une erreur.
En fait pour l'instant je fais tout ca en local.
ya pas de message d'erreur, et toutes mes autres requetes de la page se font bien.
En fait je fait un echo de cette requete sur ma page pour la copier et la coller dans l'analyseur de requete, et là ca fonctionne...
Je suis connecté avec le meme utilisateur (qui est sensé avoir tous les droits) que celui avec lequel jeme connecte de ma page php.
$req2="LOAD DATA LOCAL INFILE '".$chemin."' INTO TABLE cost FIELDS TERMINATED BY ';' (ref,fresp_euroHT,fresp_retail,exp_euroHT,exp_Wsale,exp_retail,expsav_euroHT,expsav_Wsale,licencies_stock,licencies_prod,distri_world,id_couleur,opt)";
MYSQL_query($req2,$conn_MYSQL);
echo $req2;
affiche :
LOAD DATA LOCAL INFILE 'C
Program Files/EasyPHP1-8/www/costlist/Eyewear.txt' INTO TABLE cost FIELDS TERMINATED BY ';' (ref,fresp_euroHT,fresp_retail,exp_euroHT,exp_Wsale,exp_retail,expsav_euroHT,expsav_Wsale,licencies_stock,licencies_prod,distri_world,id_couleur,opt)
et si je colle cette derniere ligne dans l'analyseur de requete, ca marche...
c'est pour ca que je comprends pas...
salut,
essaye de mettre des chemin relatif au lieuu des chemins absolue
comment je fais ?
relatif a partir de quoi en fait ?
si c'est de la page, ca marche pas et ca ne marche pas non plus dans l'analyseur de requete.
au lieu de "c*:*\...." mets "..*\*tonfichier.txt"
enleve les *
[localhost] ERROR 0: File '..\Eyewear.txt' not found (Errcode: 2)
:-o
dans le dossier parents de ta page y a-t-il un fichier "Eyewear.txt" si non pour le dossier courrant c'est "./"
tu l'a prise d'ou cette erreur ?
C'est une erreur donnée par MySQL control center.
Je n'ai aucune erreur sur la page php, comme si la requete s'exécutait.
Je sais pas trop ou est la racine de ce genre de requete, c'est pour ca que j'avais mis le chemin absolu.
Je l'avais testé en mettant le fichier directement sur c
Eyewear.txt parce que je pensais que les espaces dans le chemin pouvait faire foirer le truc, mais ca n'a pas marché non plus (enfin pas quand je la lance de la page php)
Question bete , t sur que rien
ne se passe?!! Essaye avec phpMyadmin
( au pire instal le chez toi )
| Citation :
|
Toi tu est un futé il a dit que c'etait chez lui !!
puis si le dit c'est qu'il doit en etre sur (on est sur un forum pas un chat) !!!
La question que je me pose c'est le chemin relatif par-t-il du serveur SQL ou de la page qui appel le serveur ??
Je comprends pas trop le truc de phpmyadmin.
Ca marche dans mysql control center, si je colle la requete dans l'analyseur de requete, mais mon but c'est que l'utilisateur de mon site intranet recupere un fichier et puisse l'importer dans la table quand il a envie en cliquant sur un bouton.
C'est pour ca... sinon, comme je l'ai dit, en écrivant la requete directement dans mysql ca marche.
Sur la meme page, je fais 2 requetes, avec la premiere je vide la table, et avec celle qui ne marche pas je la remplis.
le vidage se fait très bien, mais l'import ne fonctionne pas de la page php, je suis obligé de passer par mysql control center pour importer les données.
Sinon je comprends pas ce que tu veux que je fasse par phpmyadmin (je l'ai installé puisque j'utilise easyphp en local)
merci a vous tous :-D
Si tu as le temp regarde comment est fait le code d'importation de PhpMyAdmin (c'est fait pour ça les opensource après tout !)
je vois ca ou ?? :-?
le dossier de phpmyadmin ! (je ne sais pas ou il l'on caché avec easyphp)
ca y est j'ai trouvé le code de phpmyadmin, j'ai exécuté la requête par myadmin ca marche aussi.
par contre, j'arrive pas a comprendre le code... :-o
ca fait environ 1 mois que je développe en php (meme si j'ai 3 ans de programmation derriere moi) et ils utilsent apparemment une méthode complètement différente pour lancer la requête...
je ne sais pas, si quelqu'un connait une autre methode a MYSQL_query pour lancer une requete SQL, je suis tout ouie :-P
'".$chemin."' > essaie ça directement : '$chemin'
Le php est capricieux sur les requêtes sql, doit y avoir
un bout qu'il n'aime pas.
ah je ne savais meme pas qu'on pouvait enlever tout ca, ca m'arrange... :-)
mais malheureusement ca ne marche pas non plus.
ca fait pareil, ca affiche bien la bonne requete mais elle ne s'execute pas :-?
c'est bon :-D :-D
J'ai trouvé comment faire !
En fait j'ouvre le fichier par un fopen et je fait une boucle while en récupérant chaque champ (séparés dans le fichier par des ";" )
ensuite au lieu de faire le load file into je fais simplement un insert a chaque foils...
je sais pas si je suis clair, en tout cas, si qqun a le même problème, je pourrai expliquer plus clairement !
EN TOUT CAS MERCI A TOUS !!! ;-)
oui, mais bon la solution est juste un peu pus longue à mettre en place
c'est vrai...
mais bon, j'ai recopié ça du net, adapté a ma sauce, et du moment que ça marche, c'est le principal...
Le mystère de la requete qui ne s'exécute pas n'est quans meme pas résolu...
mais partout sur le net ils ne parlent que de cette méthode pour importer le contenu d'un fichier, donc l'autre méthode n'est peut etre pas possible...
La requete qui ne s'execute en aparance pas. Ce n'est pas un mistère on c'est que c'est une erreur quelque part
Il y a 2529 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
