Page 1 sur 1

Exportation de fichier

Posté : 14 avr. 2011, 11:24
par Al PiGiNo
Bonjour,
je dois concevoir un système de mise à jour automatique de base de données pour un site.
Je procède pour cela à des tests en local qui ne fonctionnent pas comme vous pouvez vous en doutez.
L'exportation et l'importation se ressemble, et j'essaie de voir le fichier que me donne une exportation pour avoir une idée du fichier à importer :wink:

Donc voilà mes petites requete :
'SELECT *  INTO OUTFILE "/babar.csv" FIELDS TERMINATED BY "," FROM jos_acesef_bookmarks'
'SELECT *  INTO OUTFILE "babar.csv" FIELDS TERMINATED BY "," FROM jos_acesef_bookmarks'
Avec celle ci, il me sort une erreur du type :

File '/babar.csv' already exists (évidemment, il n'existe pas :) )
'SELECT *  INTO OUTFILE "C:\Users\Cédric\Documents\barbar.csv" FIELDS TERMINATED BY "," FROM jos_acesef_bookmarks'
Celle ci c'est :

Can't create/write to file 'C:UsersCédricDocumentsarbar.csv' (Errcode: 22)


Enfin, rien de bien interressant pour moi, donc je viens appeler au secours :|

Re: Exportation de fichier

Posté : 15 avr. 2011, 01:10
par devlop78
Pour le dernier, il faudrait échapper les \, donc écrire \\, voire plus en fonction de (certainement devoir écrire \\\\ car échappé 1 fois pour php, et échapper 1 fois pour Mysql).

Après, bien lire la doc, vérifier au niveau des droits ... et les accents. "Cédric", c'est à lui tout seul un risque. Donc peut-être commencer par un dossier sans accent et une fois que ça marche, hop, on peut tenter ce dossier là.

Ensuite, d'autres te conseilleront mieux que moi car je n'ai jamais exporté comme ça, mais c'est déjà des pistes.

A++

Re: Exportation de fichier

Posté : 15 avr. 2011, 09:49
par macgawel
Avec celle ci, il me sort une erreur du type :

File '/babar.csv' already exists (évidemment, il n'existe pas :) )
Si PHP (ou MySQL) te dit qu'un fichier existe, c'est qu'il existe.
Par contre tu ne le cherches peut-être pas au bon endroit :roll: ...

Tu as fait une recherche de "babar.csv" sur ton disque ?
A priori non, sinon tu l'aurais trouvé à la "racine" de ta base de donnés.

Pour une installation de Wamp classique, tu devrais le trouver ici :
C:\<rép. de WAMP>\<rep. de MySQL>\data\<nom de la base>\

Suivant l'endroit où tu veux le placer, il faudra utiliser des valeurs de $_SERVER pour lui donner un chemin 'en dur'. Par exemple...
// A la racine du site
$requete = 'SELECT *  INTO OUTFILE "'.$_SERVER["DOCUMENT_ROOT"].'babar.csv" FIELDS TERMINATED BY "," FROM test';
// A l'emplacement du script
$requete = 'SELECT *  INTO OUTFILE "'.dirname($_SERVER["SCRIPT_FILENAME"]).'/babar.csv" FIELDS TERMINATED BY "," FROM test';