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

PHP & Base de données Discussion :

sauvegarde complete dumper [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut sauvegarde complete dumper
    bonsoir j'aimerai exécuter cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysqldump --user=****** --password=******  db_1 db_2 db_n> /Chemin/Vers/fichier_dump.SQL
    mais ceci s'utilise comme une basique requête ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non, ca utilise l'executable en ligne de commande mysqldump.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    exec() de devrait faire ton affaire.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    le faite que j'utilise PDO ça change quelque chose ?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non, PDO ne concerne que ce que tu fais en PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    ah ok même si la commande est pour la base de données ce n'est pas une requête mais une commande.
    merci je vais tester

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    j'ai testé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('mysqldump --user="'.$user.'" --password="'.$password.'" '.$db.' > dump.sql');
    aucune erreur se présente, le fichier se crée bien, mais le soucis c'est qu'il est vide !?

    Petite précision je suis en localhost.

    Merci

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    Quelques mois plus tard et je n'ai toujours pas de solutions.

  9. #9
    Membre éclairé Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Par défaut
    Pour faire les sauvegardes de mes bases j'utiliser une fonction :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    function dumpMySQL($serveur, $login, $password, $base, $mode)
    {
        $connexion = mysql_connect($serveur, $login, $password);
        mysql_select_db($base, $connexion);
     
    	$t=getdate();
    	$date=date('Y-m-d',$t[0]);
     
        $entete = "-- ----------------------\n";
        $entete .= "-- dump de la base ".$base." au ".date("d-M-Y")."\n";
        $entete .= "-- ----------------------\n\n\n";
        $creations = "";
        $insertions = "\n\n";
     
        $listeTables = mysql_query("show tables", $connexion);
        while($table = mysql_fetch_array($listeTables))
        {
            // si l'utilisateur a demandé la structure ou la totale
            if($mode == 1 || $mode == 3)
            {
                $creations .= "-- -----------------------------\n";
                $creations .= "-- creation de la table ".$table[0]."\n";
                $creations .= "-- -----------------------------\n";
                $listeCreationsTables = mysql_query("show create table ".$table[0], $connexion);
                while($creationTable = mysql_fetch_array($listeCreationsTables))
                {
                  $creations .= $creationTable[1].";\n\n";
                }
            }
            // si l'utilisateur a demandé les données ou la totale
            if($mode > 1)
            {
                $donnees = mysql_query("SELECT * FROM ".$table[0]);
                $insertions .= "-- -----------------------------\n";
                $insertions .= "-- insertions dans la table ".$table[0]."\n";
                $insertions .= "-- -----------------------------\n";
                while($nuplet = mysql_fetch_array($donnees))
                {
                    $insertions .= "INSERT INTO ".$table[0]." VALUES(";
                    for($i=0; $i < mysql_num_fields($donnees); $i++)
                    {
                      if($i != 0)
                         $insertions .=  ", ";
                      if(mysql_field_type($donnees, $i) == "string" or mysql_field_type($donnees, $i) == "datetime"|| mysql_field_type($donnees, $i) == "blob")
                         $insertions .=  "'";
                      $insertions .= addslashes($nuplet[$i]);
                      if(mysql_field_type($donnees, $i) == "string" or mysql_field_type($donnees, $i) == "datetime" || mysql_field_type($donnees, $i) == "blob")
                        $insertions .=  "'";
                    }
                    $insertions .=  ");\n";
                }
                $insertions .= "\n";
            }
        }
     
        mysql_close($connexion);
     
        //Indiquer l'emplacement
        $fichierDump = fopen("../sauvegarde/$base-$date.sql", "wb");
        fwrite($fichierDump, $entete);
        fwrite($fichierDump, $creations);
        fwrite($fichierDump, $insertions);
        fclose($fichierDump);
    	echo "<SCRIPT LANGUAGE='JavaScript'>";
    	echo "alert('Sauvegarde effectée avec succès.')";
    	echo "</SCRIPT LANGUAGUE>";
    }
    ensuite tu appelles la fonction par un bouton dans un formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dumpMySQL("127.0.0.1", "root", "", "lenomdelabase", 3);

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    merci beaucoup je vais tester !

    cependant pourquoi la doc mysql indique mon code si elle fonctionne pas ?!

    faut dire que c'est plus court lol


    EDIT : est-ce que les contraintes s'exportent aussi ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarde complet serveur
    Par Arcocide dans le forum Administration
    Réponses: 6
    Dernier message: 02/10/2014, 11h06
  2. sauvegarde disque complet
    Par replica dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 18/11/2008, 20h24
  3. methode reele pour sauvegarde complete a froid svp ?
    Par frp31 dans le forum Import/Export
    Réponses: 2
    Dernier message: 06/05/2007, 10h21
  4. Faire une sauvegarde complete du disque
    Par baert dans le forum Administration système
    Réponses: 3
    Dernier message: 19/04/2007, 19h29
  5. Comment sauvegarder un topic complet
    Par netah25 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/02/2005, 11h48

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