Pb avec fichier dans SELECT * INTO OUTFILE

Eléphanteau du PHP | 49 Messages

15 juil. 2008, 11:19

Salut,

Je cherche à faire une sauvegarde avec SELECT * INTO OUTFILE
Mais PHP ne réagit pas pareil que MySQL au niveau fichier

Comment résoudre facilement le pb ?
Merci
TiFred
Apprenti webmaster

ViPHP
ViPHP | 5924 Messages

15 juil. 2008, 12:48

Mais PHP ne réagit pas pareil que MySQL au niveau fichier
Que veut ce dire exactement ?

Eléphanteau du PHP | 49 Messages

15 juil. 2008, 13:58

MySQL (au moins pour cette commande) considère que le fichier est au niveau de la base de données

PHP considère que le fichier est au même endroit que le script PHP

Je voudrais pouvoir mettre le fichier à un endroit précis. Comment faire pour nommer facilement le fichier (au si bien en local que sur le site) ?
TiFred
Apprenti webmaster

ViPHP
ViPHP | 5924 Messages

15 juil. 2008, 16:18

Indique un chemin absolu...

Eléphanteau du PHP | 49 Messages

16 juil. 2008, 17:33

En local il faut mettre C: ou http// ?
Merci
TiFred
Apprenti webmaster

ViPHP
ViPHP | 5924 Messages

16 juil. 2008, 18:53

Un chemin absolu, ce n'est pas une URL. Si tu mets http ce n'est plus un chemin, et je suis curieux de savoir comment tu veux que MySQL écrive dans un fichier en http… D'autant plus qu'il ne connaît pas le protocole…

Eléphanteau du PHP | 49 Messages

17 juil. 2008, 18:24

Un chemin absolu, ce n'est pas une URL. Si tu mets http ce n'est plus un chemin, et je suis curieux de savoir comment tu veux que MySQL écrive dans un fichier en http… D'autant plus qu'il ne connaît pas le protocole…
Pour MySQL mais PHP ?
TiFred
Apprenti webmaster

ViPHP
ViPHP | 5924 Messages

17 juil. 2008, 19:11

C'est à dire, que dois tu en faire du fichier ?

Eléphanteau du PHP | 49 Messages

17 juil. 2008, 20:24

Le supprimer s'il existe déjà !
TiFred
Apprenti webmaster

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 juil. 2008, 20:31

--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 49 Messages

06 août 2008, 11:02

Bonjour,

Je suis tjs en train de tester ça !
<?php   
require_once("newfonctions.php") ;

$db = Ouvrebase() ; //ouverture de la base
//$fichier = "save".$_POST['table'].".txt" ;  //avec ce type de fichier ça marche mais il faut trouver à l'effacer et il est dans le dossier de la base
$fichier = "C://Programmes/EasyPHP2/www/ebasket/admin/save".$_POST['table'].".txt" ;

$req = Envoierequette($db, "SELECT * INTO OUTFILE '".$fichier."' FROM ".$_POST['table']) ; 

$message = 'Sauvegarde de la table '.$_POST['table'].' terminée.' ;

Fermebase($db) ;

echo "<div>$message<br />" ;
?>
Si je met un nom de fichier sans chemin, ça marche (et il me met le fichier dans le répertoire correspondant à la base)
mais si je met $fichier = "C://Programmes/EasyPHP2/www/ebasket/admin/save".$_POST['table'].".txt" ; là il plante, le message est :

Erreur SQL !
SELECT * INTO OUTFILE 'C://Programmes/EasyPHP2/www/ebasket/admin/savejeu1_calendrier.txt' FROM jeu1_calendrier
Can't create/write to file 'C:\\Programmes\EasyPHP2\www\ebasket\admin\savejeu1_calendrier.txt' (Errcode: 2)


J'ai bien vérifié à supprimer les fichiers existants !!!
TiFred
Apprenti webmaster

Eléphanteau du PHP | 49 Messages

22 août 2008, 13:19

Salut,

Ce sujet est tjs d'actualité
Qq'un peut m'aider SVP ?

Merci
TiFred
Apprenti webmaster

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 août 2008, 17:48

Bonjour,

Essaye de doubler tes antislashes (car un antislashe tout seul = caractère d'échappement)

Code : Tout sélectionner

C:\\Programmes\\EasyPHP2\\www\\ebasket\\admin\\savejeu1_calendrier.txt
Quand tout le reste a échoué, lisez le mode d'emploi...

ViPHP
ViPHP | 5924 Messages

22 août 2008, 20:31

@rthur, le problème ne se pose pas, il n'utilise pas les antislashes…

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

22 août 2008, 21:58

Souvent, le problème concerne deux choses :
- Le dossier C:\\Programmes\\EasyPHP2\\www\\ebasket\\admin n'existe pas
ou
- Il n'y a pas de droit d'écriture sur le dossier C:\\Programmes\\EasyPHP2\\www\\ebasket\\admin
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène