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 :

Transfert d'une base à une autre


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Transfert d'une base à une autre
    Bonjour,

    J'ai un petit souci pour transférer des données d'une base MySQL sur un serveur a une base MySQL d'un autre serveur.

    Je vous donne les code que j'ai fait qui biensur ne fonctionne pas mais qui donne une bonne idée du but envisagé.

    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
     
     
    <?php
           	$link = mysql_connect("xxx.xxx.xxx.xxx", "login", "psswd") or die("Impossible de se connecter : " . mysql_error());
     
     
    	mysql_select_db("MasterHM") or die("Impossible de se connecter : " . mysql_error());
     
    	$query = "SELECT * FROM site";	
     
    	$result = mysql_query($query) or die("Query failed");
     
                    mysql_close($link);
     
    	$link = mysql_connect("xxx.xxx.xxx.xxx", "login", "psswd")
      			 or die("Impossible de se connecter : " . mysql_error());
     
     
    	mysql_select_db("testPHP") or die("Impossible de se connecter : " . mysql_error());
     
    	$query = "INSERT INTO site mysql_result($result)";	
     
                    $result = mysql_query($query) or die("Query failed :" . mysql_error());
     
    	mysql_close($link);
     
    		?>
    Auriez vous une idée ?

    Merci d'avance

    J.Charles

  2. #2
    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
    J'ai l'idée de ne pas le faire par un script php.

    Exporte/importe avec PHPMyAdmin... Tout dépend du contexte bien sur.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Mon probleme est qu'il faut que j'automatise cette tache ... Et il faut que j'arrive a faire quelque chose de propre pour transferer mes données d'un serveur à un autre et ca commence a faire loooongtemps que je suis sur ce probleme et je commence à en avoir ras le bol ...


    Je pense pas qu'un import/export soit faisable d'un serveur à un autre serveur distant ...

  4. #4
    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
    ok.
    Quand tu ferme la connexion, $result n'est plus disponible. il faut que tu mettes les résultats dans un tableau intermediaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $tablo = array();
    while ($data = mysql_fetch_assoc($result)) {
       $tablo[] = $data;
    }
    Et ensuite, sois tu insere tout d'un coup (je sais pas si c'est faisable)
    soit tu fais une requete après l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($tablo as $data) {
       $sql = "INSERT INTO ma_table VALUES ('".explode("', '", $data)."')";
       mysql_query($sql);
    }
    Vala, Hope this helps

  5. #5
    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
    Sinon, j'ai vu qu'on pouvait lier 2 bases MySQL entre elle pour faire de la "synchronisation" il faut definir une base maitre et une base esclave
    et avec quelques parametrages tu peux arriver a copier le contenu de ta base maitre dans la base esclave
    http://blog.thierrynardoux.com/index...serveurs-mysql

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    Je te remercie Mr N. ton idée est bonne ... mais j'ai un peu de mal

    En fait si j'ai bien compris le mécanisme pour transferer d'une table à une autre :
    1-Je me connecte à ma base
    2-Je fais une requete SQL qui stock le contenu de mes bases dans un tableau
    3-je me connecte à la deuxieme base
    4-Je parcours mon tableau stocké en mémoire et j'insere son contenu dans la deuxieme table

    Mon probleme est que visiblement lorsque je ferme la premiere connexion, il ne garde pas le tableau en memoire ...
    Je ne comprends pas comment sont gérés les connexions et les données en memoire...
    Je n'arrive pas a comprendre comment cela fonctionne.

    Au secours :'(

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Et visiblement avec ta méthode, j'obtiens un tableau contenant des tableaux ... et je vois pas comment en extraire le contenu ... Peut etre avec le ".explode" mais je comprends pas le fonctionnement non plus

  8. #8
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut et bonnes fêtes,

    Allons-y avec des tableaux simples.

    Supposons une table (id, champ1, champ2, champ3)

    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
    <?php
              $link = mysql_connect("xxx.xxx.xxx.xxx", "login", "psswd") or die("Impossible de se connecter : " . mysql_error());
     
     
       mysql_select_db("MasterHM") or die("Impossible de se connecter : " .mysql_error());
     
       $query = "SELECT * FROM site";   
     
       $result = mysql_query($query) or die("Query failed");
       while ($ligne=mysql_fetch_array($result))
        {
           $tab1[$ligne["id"]]=$ligne["champ1"];
           $tab2[$ligne["id"]]=$ligne["champ2"];
           $tab3[$ligne["id"]]=$ligne["champ3"];
         }
     
                    mysql_close($link);
     
       $link = mysql_connect("xxx.xxx.xxx.xxx", "login", "psswd")
                or die("Impossible de se connecter : " . mysql_error());
     
     
       mysql_select_db("testPHP") or die("Impossible de se connecter : " .mysql_error());
        foreach ($tab1 as $key => $value)
        {
           $query = "INSERT INTO site values(\"$key\",\"$value\",\"$tab2[$key]\",\"$tab3[$key]\")";   
           $result = mysql_query($query) or die("Query failed :" .                   mysql_error());
     
       mysql_close($link);
     
          ?>
    Aux erreurs d'encodage près.
    C'est lourd mais ça devrait marcher

Discussions similaires

  1. [AC-2003] Transfert de données d'une base à une autre (similaire)
    Par FadeToBlack dans le forum Access
    Réponses: 4
    Dernier message: 20/11/2012, 09h55
  2. Réponses: 1
    Dernier message: 10/01/2012, 17h52
  3. Transfert de données d'une base à une autre
    Par laurentSc dans le forum Administration
    Réponses: 8
    Dernier message: 02/03/2010, 18h01
  4. Réponses: 4
    Dernier message: 11/04/2008, 10h48
  5. Réponses: 3
    Dernier message: 12/01/2007, 16h23

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