Problème avec load data local infile!

Bonjour à tous,

Voilà j’ai un souci avec la commande load data local infile… de MYSQL.
Tout d’abord cette commande fonctionne bien sur localhost et sur serveur distant. Ces deux serveurs fonctionnent sous windows.

Cependant lorsque je l’exécute sur un serveur distant sous linux, elle ne fonctionne plus. A l’exécution de la commande, je fais un "or die(mysql_error()) et l’interprétation PHP me dit que la version de mysql n’est pas compatible avec cette commande. J’ai donc affiché la requête exacte avant l’exécution de celle-ci et en faisant un “copier/coller” dans les commandes sql de phpmyadmin, elle fonctionne correctement. Il n’y a donc aucun problème de compatibilité.

Avez-vous une idée du problème? Je sais que linux respect la casse et le “/” et le problème ne vient pas de là… J’ai respecté la syntaxe.

Merci à vous tous pour vos réponses
Edité le 25/08/2009 à 14:11

Salut,

Je ne pense pas que ton problème vienne de ta requête, mais plutôt des commandes php que tu utilises non? Tes mysql windows et linux sont sensés être exactement les mêmes?

Sinon, die(mysql_error()) ne me semble pas correct : mysql_error() renvoie un string mais ne l’affiche pas! et die() n’affiche rien non plus… Ce serait plus correct de mettre die(echo(mysql_error()))


sinon y'a le "LOCAL" qui peut peut-être poser pb. Tu as essayé en mettant le fichier sur le serveur distant pour voir? (je dit ça au pif, mais ça coute rien d'essayer)

Ce n’est pas plus correct kiki :slight_smile:

–> fr3.php.net…

Non, la vraie question à se poser, c’est depuis où mysql charge le fichier :slight_smile:

ben si c’est correct : echo ne retourne rien à die et affiche lui même la string. Alors que die ne pourrait pas afficher la string puisqu’il ne peut afficher qu’un entier (ou alors j’ai rien compris??)

Et oui c’est ptet le fichier mais ptet aussi une mauvaise fonction php (en fait j’ai pas compris l’erreur : “l’interprétation PHP me dit que la version de mysql n’est pas compatible”…)


lol oui en effet j'ai rien compris :D je lisais à l'envers... je croyais lire "PHP >= 4.2.0 n'affiche le message status que si c'est un entier" alors que c'est à peu près exactement l'inverse "PHP >= 4.2.0 n'affiche pas le message status si c'est un entier" ... Y'a des fois on ferais mieux de se taire :) Edité le 19/08/2009 à 15:20

die (ou exit) fait les deux.

Bonjour,

Excusez-moi pour le retard de réponse.

Le problème est résolu!!!

Donc je vous confirme que or die(mysql_error()) fonctionne bien car il me retournait clairement ce message : “The used command is not allowed with this MySQL version”

Alors dans mon souci tu avais raison -kiki- car en fait je mettais le LOCAL mais comme j’exécutais sur un serveur Linux, il cherchait le chemin sur ma machine et non le serveur lui-même donc il a fallut que j’enlève ce LOCAL.

De plus autre souci, mon site intranet est hébergé sur un serveur de l’entreprise dont je ne bénificie pas d’un accès à l’administration et j’ai un profil limité. Clairement le privilège FILE n’était pas actif et il doit l’être quand on utilise LOAD DATA. Ceci a provoqué le message d’erreur que j’ai indique au dessus.

Pour vous en persuader, voici le lien de la doc MYSQL : REFMAN MYSQL

Voilà et merci à vous de m’avoir aidé ^^ ;):slight_smile: