Page 1 sur 1

pb avec load data infile

Posté : 05 juil. 2005, 10:53
par logone
Salut,

J'ai un probleme avec un script qui est le suivant

Code : Tout sélectionner

$filename="donnees/fichier.csv"; $login = "login"; $pass = "pass"; $o_DB = mysql_connect("localhost", $login, $pass); mysql_select_db("data", $o_DB); $delete = "DELETE FROM immodata"; $deleteOK = mysql_query($delete) or print(mysql_error());
si je fait

Code : Tout sélectionner

$replace = "LOAD DATA LOCAL INFILE '$filename' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'"; $replaceOK = mysql_query($replace) or print(mysql_error());
J'ai l'erreur The used command is not allowed with this MySQL version qui
veux dire qu'il semble que cette commande ne soit pas dispo

si je remplace par

Code : Tout sélectionner

$replace = "LOAD DATA INFILE '$filename' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'"; $replaceOK = mysql_query($replace) or print(mysql_error());
j'ai l'erreur Access denied for user: 'immocons@localhost' (Using password:
YES)

Je nage un peu

merci de votre aide

Posté : 05 juil. 2005, 11:01
par zeus
Pour la 2nd erreur, je te conseil d'enlever le LOCAL car il y a des versions de MySQL qui ne le gère pas bien

ensuite, pour la dernière, je ne pense pas que se soit la requête qui bloque

Tu as essayé de mettre juste la dernière requete ?

Posté : 05 juil. 2005, 11:08
par logone
oui j'ai tente de mettre

Code : Tout sélectionner

$replace = "LOAD DATA INFILE '$filename' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'"; $replaceOK = mysql_query($replace) or print(mysql_error());
mais j'ai l'erreur

Access denied for user: 'immocons@localhost' (Using password: YES)

J'ai bien verifier mes logins et pass et pas de soucis a ce niveau

Posté : 05 juil. 2005, 11:14
par zeus
Et si tu remplace la requete par un select tout simple, tu as toujours la même erreur ?

Posté : 05 juil. 2005, 11:30
par logone
un

Code : Tout sélectionner

$replaceOK = mysql_query("select * from immodata");
fonctionne tres bien je pense que le soucis viens de l'insertion du fichier texte

Posté : 05 juil. 2005, 11:35
par zeus
Fait ça et poste moi le résultat. 80% des erreurs de LOAD DATA INFILE vient d'une erreur dans le nom du fichier
$replace = "LOAD DATA INFILE '$filename' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";
echo $replace;

Posté : 05 juil. 2005, 11:49
par logone
voila le resultat
 LOAD DATA INFILE 'donnees/cchessy-p.csv' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '
'

je ne sais pas si le chemin devrait etre donnees/cchessy-p.csv ou un truc du style /home/site/donnees/cchessy-p.csv

qu'en penses tu ??
[/php]

Posté : 05 juil. 2005, 12:05
par zeus
le chemin doit être un chemin ABSOLU du type C:/dir1/dir2/file.csv

C'est surement la raison de l'erreur :wink:

Posté : 05 juil. 2005, 17:11
par logone
j'ai tente un chemin du style
$filename ="/home/immocons/public_html/donnees/fichier.csv";
$replace = "LOAD DATA INFILE '$filename' REPLACE INTO TABLE immodata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'"; 
echo $replace; 
mais c'est toujours pareil


Grrrrrrrrrr[/php]

Posté : 05 juil. 2005, 17:26
par zeus
Normal, si tu ne lit pas mes post :evil:
le chemin doit être un chemin ABSOLU du type C:/dir1/dir2/file.csv
Il me semble que je ne peut pas être plus clair :wink:

Posté : 05 juil. 2005, 17:42
par logone
tu penses que cela peu venir de ca

ok je tente de chercher le chemin absolu

Posté : 05 juil. 2005, 17:45
par logone
comment je peux trouver ce chemin ??
mon serveur web est sous linux

Posté : 05 juil. 2005, 17:46
par zeus
C'est ce que j'était en train de chercher

J'ai commencé par gueuler avant de me rendre compte que /home/ voulait dire serveur Linux

Je te tiens au courant

Posté : 05 juil. 2005, 17:52
par logone
je pense que le chemin absolu est

_SERVER["DOCUMENT_ROOT"] /home/immocons/public_html

c'est ce que me donne un phpinfo

donc si je rajoute le mon de mon fichier ca me donne

/home/immocons/public_html/donnees/monfichier.csv

donc toujours pareil

Grrrrr