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

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

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