probleme de restauration

probleme de restauration - SQL/NoSQL - Programmation

Marsh Posté le 13-05-2005 à 11:58:20    

Bonjour a tous,
 
j'utilise un script PHP pour pouvoir sauvegarder et restaurer ma base de données. Le probleme, c'est que la restauration ne fonctionne pas !
Voila le code que j'utilise :
 

Code :
  1. <?php
  2. define("DB_PATH", "c:\PROGRA~1\easyphp1-7\mysql\bin\\" );
  3. $fich="e:\sauvegarde\base\baseSQL.sql";
  4. if(isset($_POST['valid'])) { //restauration de la base
  5. exec(DB_PATH."mysql -uroot -proot < $fich",$retour,$code);
  6. if($code==0) {
  7.  echo "base restaurée avec succès !<br>
  8.  <a href=../>Cliquez ici pour revenir à la page d'accueil</a>";
  9.     exit();
  10. }
  11. else
  12.  echo "<b>impossible de restaurer la base !<br>
  13.   vérifiez que le serveur MySQL est bien démarré</b>";
  14. }


 
 
Ce script est lancé à partir d'un client. Le serveur doit donc exécuter le script sans probleme. Seulement, la commande ne fonctionne pas :(
 
J'ai testé ce script en local sur ma machine avec EasyPHP et il tourne sans probleme. Ce que j'ai du mal a comprendre c'est que la sauvegarde utilise egalement la commande exec() et elle fonctionne parfaitement.
De plus, j'ai lancé la commande : mysql -uroot -proot < e:\.....   directement sur le serveur et elle passe sans probleme.
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 13-05-2005 à 11:58:20   

Reply

Marsh Posté le 17-05-2005 à 00:23:17    

déjà, t pas logique, y'a des endroits ou tu as des doubles backslashs, et d'autres des simple ... à mno avis faut des doubles , ... mais g pas assez d'expérience avec php sous windows

Code :
  1. define("DB_PATH", "c:\PROGRA~1\easyphp1-7\mysql\bin\\" );


 
should become
 

Code :
  1. define("DB_PATH", "c:\PROGRA~1\easyphp1-7\mysql\bin\\" );


Reply

Marsh Posté le 17-05-2005 à 00:25:32    

de plsu, dans ton exec , tu devrais passer $code par référence, je sais pas si c obligatoire pour que ça marches ( j'ai l'ipression que php le fait parfois lui même), mais c plus sûr !
 

Code :
  1. exec(DB_PATH."mysql -uroot -proot < $fich",$retour,$code);


 
should be  
 

Code :
  1. exec(DB_PATH."mysql -uroot -proot < $fich",$retour,&$code);


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed