IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PHP mysqldump donne un fichier vide!


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut PHP mysqldump donne un fichier vide!
    Bonjour,

    Voilà je vous donne l'une des solutions que j'ai essayé mais toujours le même problème, je recoi un fichier vide!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $time=time();
     
    $command = "C:\Program Files\EasyPHP5.2.10\mysql\bin\mysqldump.exe mysqldump -u root -h localhost dreams > $time-dreams.sql";
    system($command);
     
    ?>
    Qui peut m'aider s'il vous plait?!

    Merci à tous!

  2. #2
    Membre du Club Avatar de moins52
    Inscrit en
    Août 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Et en exécutant la commande directement, c'est-à-dire hors PHP, tu obtiens quoi ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par moins52 Voir le message
    Et en exécutant la commande directement, c'est-à-dire hors PHP, tu obtiens quoi ?
    Merci pour la réponse

    Voilà, lorsque je fais comme suit, ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Etape 1:
    cd c:/program files/easyphp5.2.10/mysql/bin
     
    //Etape 2:
    mysqldump -u root -p  dreams > "c:/backup.sql"
    Mais lorsque je fais directement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd c:/program files/easyphp5.2.10/mysql/bin/mysqldump -u root -p  dreams > "c:/backup.sql"
    ça donne l'erreur: Le chemin d’accès spécifié est introuvable.

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    As-tu essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $time=time();
     
    $command = "C:/Program Files/EasyPHP5.2.10/mysql/bin/mysqldump.exe mysqldump -u root -h localhost dreams > $time-dreams.sql";
    system($command);
     
    ?>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $time=time();
     
    $command = "C:\\Program Files\\EasyPHP5.2.10\\mysql\\bin\\mysqldump.exe mysqldump -u root -h localhost dreams > $time-dreams.sql";
    system($command);
     
    ?>
    car "\" est un caractère d'échappement.

    Citation Envoyé par Oussama_Gabes Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd c:/program files/easyphp5.2.10/mysql/bin/mysqldump -u root -p  dreams > "c:/backup.sql"
    ça donne l'erreur: Le chemin d’accès spécifié est introuvable.
    Normal, ta commande commence par "cd" (commande pour changer de dossier) et tu le mènes vers c:/program files/easyphp5.2.10/mysql/bin/mysqldump (mysqldump n'étant pas un dossier, il ne le trouve pas en tant que tel). Puis, il ne prendrait pas les autres paramètres en compte.

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:/program files/easyphp5.2.10/mysql/bin/mysqldump -u root -p  dreams > "c:/backup.sql"

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Shikiryu Voir le message

    Normal, ta commande commence par "cd" (commande pour changer de dossier) et tu le mènes vers c:/program files/easyphp5.2.10/mysql/bin/mysqldump (mysqldump n'étant pas un dossier, il ne le trouve pas en tant que tel). Puis, il ne prendrait pas les autres paramètres en compte.

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:/program files/easyphp5.2.10/mysql/bin/mysqldump -u root -p  dreams > "c:/backup.sql"
    Merci pour votre réponse.

    Ah oui, c'est logique la commande cd est pour changer le dossier donc le programme ne trouve pas le chemin

    Pour la ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:/program files/easyphp5.2.10/mysql/bin/mysqldump -u root -p  dreams > "c:/backup.sql"
    Elle ne fonctionne pas non plus.

    Bon, je retourne au code php... négatif, le résultat est toujours le même

  6. #6
    Membre du Club Avatar de moins52
    Inscrit en
    Août 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Je viens de m'appercevoir que tu as un mysqldump.exe de trop.

    Essaye plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $time=time();
     
    $command = "C:\\Program Files\\EasyPHP5.2.10\\mysql\\bin\\mysqldump -u root -h localhost dreams > $time-dreams.sql";
    system($command);
     
    ?>

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par moins52 Voir le message
    Je viens de m'appercevoir que tu as un mysqldump.exe de trop.

    Essaye plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $time=time();
     
    $command = "C:\\Program Files\\EasyPHP5.2.10\\mysql\\bin\\mysqldump -u root -h localhost dreams > $time-dreams.sql";
    system($command);
     
    ?>
    Merci encore une fois. Mais le fichier est toujours vide :'(

    Je ne comprend pas vraiment ou est l'erreur, j'ai essayé plein de possibilités mais le résultat est le même

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    personne ne connaît la méthode d'appel de mysqldump dans php?!

  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Je ne sais pas (et je ne pense pas) que mysqldump soit directement implémenté dans PHP (ou même possiblement lançable depuis PHP sans le faire comme tu souhaites le faire).

    Néanmoins, pour un de mes vieux site, j'avais récupéré un code qui fonctionnait bien pour sauvegarder ma base. (je ne le ferai pas de la même manière maintenant si je devais le refaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    function backupDatabase($file){
       mysql_connect('host', 'login', 'pass'); // hôte / login / pass
       mysql_select_db('db_name');  // nom de la base
       $tables = array();
       $result = mysql_query('SHOW TABLES');
         while($row = mysql_fetch_row($result)){ $tables[] = $row[0]; } 
         //cycle through
         $return = "";
         foreach($tables as $table){
         $result = mysql_query('SELECT * FROM '.$table);
         $num_fields = mysql_num_fields($result); 
         $return.= 'DROP TABLE IF EXISTS '.$table.';';
         $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
         $return.= "\n\n".$row2[1].";\n\n"; 
         for ($i = 0; $i < $num_fields; $i++){
           while($row = mysql_fetch_row($result)){
           $return.= 'INSERT INTO '.$table.' VALUES(';
             for($j=0; $j<$num_fields; $j++){
             $row[$j] = addslashes($row[$j]);
             $row[$j] = ereg_replace("\n","\\n",$row[$j]);
             if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
               if ($j<($num_fields-1)) { $return.= ','; }
             }
           $return.= ");\n";
           }
         }
         $return.="\n\n\n";
         }
       //save file
       $handle = fopen($file,'w+');
       fwrite($handle,$return);
       fclose($handle);
       echo "Backup Finie";
    }
    backupDatabase('chemin/vers/backup' . date('m-d-y') . '.sql');
    ?>

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Shikiryu Voir le message
    Je ne sais pas (et je ne pense pas) que mysqldump soit directement implémenté dans PHP (ou même possiblement lançable depuis PHP sans le faire comme tu souhaites le faire).

    Néanmoins, pour un de mes vieux site, j'avais récupéré un code qui fonctionnait bien pour sauvegarder ma base. (je ne le ferai pas de la même manière maintenant si je devais le refaire)
    Merci bien pour votre réponse

    Pour la commande mysqldump on peut l'implémenter dans php, j'ai trouver des sujets sur les forum à propos de ça. Mais, je ne sais pas pourquoi ca marche pas avec ma base (J'utilise easyPHP en local).

    La mysqldump est bien utile lorsque la taille de la base est très grand, elle sauvegarde les données instantanément.

    Imagine qu'on a des tableau de milliers de ligne, le programme va faire le parcourt des toutes ces ligne pour copier les données avec un grand risque de planter ou de ne pas prendre en compte les données inseré durant le temps de ce parcourt.

    Merci encore une fois pour le code

Discussions similaires

  1. [XML] php insertion données dans fichier xml
    Par math11 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/03/2011, 12h20
  2. Du code php qui donne une page vide ?
    Par MasterChief78 dans le forum Langage
    Réponses: 18
    Dernier message: 13/09/2009, 22h06
  3. [Système] mysqldump génère un fichier vide
    Par Tchupacabra dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2008, 17h07
  4. [RSA]Encryption qui donne des fichiers vides
    Par Janitrix dans le forum Sécurité
    Réponses: 5
    Dernier message: 27/05/2007, 01h36
  5. Mysqldump donnant un fichier vide
    Par simoryl dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 15/02/2005, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo