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

Administration MySQL Discussion :

[MySQL]Copier le contenu d'une BD MySQL


Sujet :

Administration MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [MySQL]Copier le contenu d'une BD MySQL
    Bonjour à tous,

    N'ayant pas pratiqué le PHP depuis la version 3.0, j'ai un peu de mal à m'y remettre


    Voilà mon problème :

    J'ai 2 bases de données MySQL, parfaitement identiques au niveau de leur structure. L'une contient des enregistrements et l'autre est vide. Je voudrais transférer les données de la 1ère vers la 2de.

    Savez-vous s'il existe une fonction permettant de faire cela simplement et rapidement ou suis-je obligé de parcourir chacune de mes tables et d'effectuer de multiples requêtes ?

    Merci d'avance et bonne journée à tous

  2. #2
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 42
    Points
    42
    Par défaut
    Slt,
    J'ai trouvé ce code qui ma servi pour la sauvegarde de ma BD.
    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
     
    <?php
     
    function mysql_structure() {
      $tables = mysql_list_tables($base);
      while ($donnees = mysql_fetch_array($tables))
        {
        $table = $donnees[0];
        $res = mysql_query("SHOW CREATE TABLE $table");
        if ($res)
          {
          $insertions = "";
          $tableau = mysql_fetch_array($res);
          $tableau[1] .= ";";
          $dumpsql[] = str_replace("\n", "", $tableau[1]);
          $req_table = mysql_query("SELECT * FROM $table");
          $nbr_champs = mysql_num_fields($req_table);
          while ($ligne = mysql_fetch_array($req_table))
            {
            $insertions .= "INSERT INTO $table VALUES(";
            for ($i=0; $i<=$nbr_champs-1; $i++)
              {
              $insertions .= "'" . mysql_real_escape_string($ligne[$i]) . "', ";
              }
            $insertions = substr($insertions, 0, -2);
            $insertions .= ");\n";
            }
          if ($insertions != "")
            {
            $dumpsql[] = $insertions;
            }
          }
        }
      return implode("\r", $dumpsql);
      }
     
     
    ?>
    Affiche le resultat de cette fonction, ensuite il te suffit de copier le contenu dans ta nouvellle base de données.

  3. #3
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Pourquoi tu ne renomme pas tout simplement la base B en base A ??

    Sinon, en php je ne sais pas mais avec mysql, tu peux utiliser mysqldump.

    http://dev.mysql.com/doc/refman/5.0/fr/mysqldump.html

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci à vous deux pour vos réponses si rapides,

    Pour Gregpeck : C'est vrai que ce serait une bonne solution mais malheureusement, ce n'est pas possible pour différentes raisons propres à l'application que je développe. Mais c'était bien vu

    Pour soufir : Je pense que ton code devrait m'aider. Je le testerais demain sur mon appli et je te dirais ce que ça donne, mais, en l'adaptant un peu, ça devrait marcher.

    Merci encore et à charge de revanche ...


  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ben tu fais un export de ta base A avec PHPMyadmin et tu importe dans ta base B

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Malheureusement, ce n'est pas possible non plus, car cette action sera réalisée par les utilisateurs eux-mêmes et ce, plusieurs fois par jour. Elle doit dont être implémentée de manière programmatique.

    Je vais essayer la méthode soufir, je vous tiens au courant

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Des utilisateurs qui changent de bases tous les jours !!!!
    Si le script plus haut ne marche pas, tu prends le code de phpmyadmin qui concerne l'export et c'est fini !

  8. #8
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    il y a une synthaxe SQL qui ressemble a peu pres a ca
    INSERT INTO table1( att1,att2, att3 )
    SELECT at1, at2, at3
    FROM table2;
    Ca marche sous Oracle, a la limite tu peux tester pour voir si ca marche sous mySQL.
    Tout énigme a une solution ! Tout est question de discipline !

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

Discussions similaires

  1. [Prototype] Afficher le contenu d'une table MySQL
    Par Claire.Heitz dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 00h10
  2. [MySQL] Lister le contenu d'une table selon un champ
    Par MisteroL dans le forum Langage SQL
    Réponses: 1
    Dernier message: 29/01/2007, 23h19
  3. Réponses: 2
    Dernier message: 09/11/2006, 09h59
  4. Copier tout le contenu d'une BD MYSQL sur un autre PC
    Par condor_01 dans le forum Outils
    Réponses: 4
    Dernier message: 06/09/2006, 23h53
  5. Réponses: 5
    Dernier message: 19/06/2006, 23h22

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