Se connecter avec
S'enregistrer | Connectez-vous

[PHP-SQL] Requete qui ne s'exécute pas

Dernière réponse : dans Programmation

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

Autres pages sur : php sql requete execute

Lassé par la pub ? Créez un compte

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

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)

Citation :

Shinji62 a écrit :
Question bete , t sur que rien
ne se passe?!! Essaye avec phpMyadmin :) ( au pire instal le chez toi )


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

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

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 !!! ;-)

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...
Lassé par la pub ? Créez un compte
Tom's guide dans le monde