mysqldump, php et dump vide :( [RESOLU] - PHP - Programmation
Marsh Posté le 15-04-2010 à 14:27:23
si le chemin de ton mysqldump n'est pas dans la variable d'environnement PATH, ça risque pas de fonctionner. Je parie que quand tu fais le test sous DOS, t'es dans le répertoire où se trouve mysqldump.
Edit : et perso, j'utilise shell_exec() pour faire un dump en ligne de commande sous php.
Marsh Posté le 15-04-2010 à 14:45:55
FLO, le résultat est : que dalle !!! rien, même pas un 0.
RUFO : Et si, j'ai ajouter le répertoire "c: ... easyphp ... bin" à la variable d'environnement.
Par contre, le problème ne doit pas en être loin.
Lorsque je fais un
Code :
|
,
mon script PHP affiche bien le contenu du dossier.
Cependant, lorsque je fais
Code :
|
,
il ne m'affiche que dalle. Alors que si je tape "mysqldump", sous DOS et a partir de n'importe quel dossier, je reçois :
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
Je pense que PHP n'arrive pas a interprété la commande mysqldump, même si il arrive tout de même a créer le FICHIER.
Marsh Posté le 15-04-2010 à 14:47:43
et juste pour etre sur
exec("mysqldump --opt --u root BASE >FICHIER" )
Marsh Posté le 15-04-2010 à 14:52:15
moi, j'ai aucun pb pour faire un dump avec mysqldump via php avec shell_exec() sauf que partout, je mets le chemin en absolu (pour mysqldump et le fichier dump).
Marsh Posté le 15-04-2010 à 14:52:44
ouai ou juste ca
Code :
|
Marsh Posté le 15-04-2010 à 14:52:47
non, pas mieux .
Hormis les double quote, ... c'est la même qu'avant, non ? (sans les quotes, ERREUR)
Marsh Posté le 15-04-2010 à 14:54:44
stealth35 a écrit : ouai ou juste ca
|
félicitation tu viens de lui faire afficher mysqldump
essaye
Code : |
puis
Code : |
Marsh Posté le 15-04-2010 à 14:55:33
xxbenitoxx a écrit : non, pas mieux . |
ouai les quote comme ca reviens a faire shell_exec
mais bon c'est que c'est pas dans ton PATH
fait un :
Code : |
Marsh Posté le 15-04-2010 à 14:56:39
flo850 a écrit : |
" !== `
' !== '
http://www.php.net/manual/fr/langu [...] cution.php
félicitation pour ta culture...
et exec ca affiche uniquement la premiere ligne
Marsh Posté le 15-04-2010 à 14:58:02
stealth35 a écrit : ouai ou juste ca
|
Ça affiche mysqldump .
Sinon, j'ai essayé ça :
Code :
|
Et pour les 4, je ne reçois rien !
Marsh Posté le 15-04-2010 à 14:58:44
c'est ec que je dis depuis le début que ça variable PATH (celle du DOS) n'est pas renseignée avec le chemin de mysqldump. Il me soutient que si, sa preuve : passthru("DIR" );
Citation : mon script PHP affiche bien le contenu du dossier |
-> Je ne vois pas trop le rapport entre DIR et PATH
Marsh Posté le 15-04-2010 à 15:02:26
.
J'ai ajouter mysqldump dans le PATH de WINDOWS ...
$_SERVER['PATH'] ne me donne pas le lien du mysqldump , j'espère tout simpleùment que c'est ca !
Marsh Posté le 15-04-2010 à 15:04:11
tu dois juste donnée le dossier bin de ton mysql
Marsh Posté le 15-04-2010 à 15:05:58
dans la variable PATH de DOS et après faut rebooter il me semble pour que ça soit pris en compte.
Marsh Posté le 15-04-2010 à 15:07:45
ouai touche windows + pause -> avancé -> variable environement -> variable systeme -> PATH
après comme dis rufo tu reboot (juste le serveur ca suffis)
Marsh Posté le 15-04-2010 à 15:08:42
ReplyMarsh Posté le 15-04-2010 à 15:11:14
oui, ton script marchera pas si la variable PATH n'est pas renseignée correctement. Voilà pourquoi en php, on fait plutôt un fichier de conf et qu'on définit des constantes avec define()... C'est plus pratique et plus portable d'un serveur à l'autre (surtout si ton serveur de dév est en windows et celui de prod en Linux, ce qui est mon cas).
Marsh Posté le 15-04-2010 à 15:11:25
ReplyMarsh Posté le 15-04-2010 à 15:13:11
Non, je n'avais pas redémarrer Apache depuis que j'ai modifié le PATH.
Pat contre, je n'ai pas redémarrer WinXP non plus ... je suis de retour dans 2 minutes !
Et comme j'ai le lien dans le PATH depuis le début ( je le maintien RUFO ), et pas dans PHP .. le problème est suremetn de la .. (en tous cas je l'espère) !
Marsh Posté le 15-04-2010 à 15:19:33
C'est malheureux à dire ... mais sa fonctionne !
Tout ca parce que j'avais oublier de redémarrer Windows ... JE ferai mieux de retourner son Linux !
Je vous remercie tous pour m'avoir aider à résoudre ce problème, qui n'en était pas un =D !
Marsh Posté le 15-04-2010 à 14:15:16
Bonjour à tous,
Je cherche à faire un dump de ma BDD à travers PHP.
Pour cela, j'utilise la commande ci-dessous :
A l'exécution du script (en local), je vois une fenêtre DOS apparait rapidement, puis disparait.
En résultat, mon fichier est bien créé, mais vide (0 ko).
En testant la commande sous DOS, ca fonctionne bien (fichier créé et complet).
Quelqu'un a une idée ? Ca fait 4H00 que je cherche, et je ne trouve rien
Quelqu'un saurais comment je pourrais faire pour que la fenêtre DOS ne se ferme pas ? Il y a peut être une piste dessus ...
Merci
J'utilise :
- Windows XP
- EasyPHP
- serveur en local pour mes tests, puis en ligne.
EDIT : J
SOLUCE : j'ai bien ajouté le mysqldump aux PATH, mais je n'avais pas redémarré XP ! Merci à tous !
Message édité par xxbenitoxx le 15-04-2010 à 15:20:57