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 :

[SQL] script de dump d'une base de donnée


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 93
    Points : 59
    Points
    59
    Par défaut [SQL] script de dump d'une base de donnée
    bonjours à tous
    voila il m'ai demandé de conçevoir une appli perméttant de dumpé une base de donnée (et ce en générant un script sql ou autre) pour la recrée autre part (une sorte d'enregsitrer sous)
    je sais que PhpMyadmin peut le faire mais le truc serai que je puisse intégré cette fonction dans une appli propore à moi
    j'ai pas mal trifouillié le code de phpMyAdmin pour pouvoir en soustraire le script mais (pour l'heure) je suis pérdue
    donc si quélqu'un a une idée, une piste, un script tout prés
    ben je le remércie d'avance
    voila bon code a tous

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as plusieurs exemple de code sur la page sources PHP : Bases de données

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 93
    Points : 59
    Points
    59
    Par défaut Merci
    Merci infiniement mais j'ai une autre question
    est il possible d'avoir un script sql d'une base de donnée Quelconque
    ,et non pas spécifique a Mysql comme c'est le cas sur la faq, comme le fait un logiciel comme Power AMC par exemple
    sinon peut on réussir a faire un dump d'une base de donnée Oracle???
    voila et Merci d'avance

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut script dump
    Bonjour,

    Voici un script qui devrait répondre à ce genre de besoin,

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <?php
    //Data dbb
    $server_bdd="localhost";
    $user_bdd="root";
    $pass_bdd="";
     
     
    //Récupération du paramètre de l'url pour connaitre ou enregistrer les dump
    $main_folder=$_GET['folder'];
    // Si le dossier n'existe pas, on le créé
    if(!file_exists($main_folder)) 
    {
    mkdir($main_folder); 
    }
     
    // création d'un horodate pour l'historisation
    $date = date("dmYHis");
     
    // Connexion à la bdd
    $link = mysql_connect($server_bdd, $user_bdd, $pass_bdd);
     
    // Récupération des bases
    $db_list = mysql_list_dbs($link);
     
    // Pour chaque bdd
    while ($row = mysql_fetch_object($db_list)) {
    // Les echo servent à tracer l'execution et le fwrite servent à écrire dans le fichier de dump
     
    echo "___________________  Traitement de la base <span><u><b>".$row->Database."</b></u></span> ___________________________<br />";
     
    // Focalisation sur la bdd courante
    mysql_select_db($row->Database);
     
    // S'il n'existe pas de dossier pour cette base, on le créé, en effet le script va creer 1 dossier / bdd et historisera les bases dedans
    if(!file_exists($main_folder."/".$row->Database)) 
    {
    mkdir($main_folder."/".$row->Database); 
    }
     
     
    // Création du nom de fichier
    $db_base=$row->Database."_".$date; //Nom du fichier voulu
     
    // Création du fichier
    $inF = fopen($main_folder."/".$row->Database."/".$db_base.".sql","w");
     
    fwrite($inF,"--\n");
    fwrite($inF,"-- Dump de la base $db_base\n");
    fwrite($inF,"--\n");
     
    $sql_tables = "SHOW TABLES";
    $req_tables = mysql_query($sql_tables);
     
    // Pour chaque table
    while (list($table) = mysql_fetch_row($req_tables)) {
    echo "<br />Table <b>".$table."</b><br />";
       fwrite($inF,"\n--\n-- Table $table\n\n");
       fwrite($inF,"DROP TABLE IF EXISTS $table;\n");
       $sql_create_table = "SHOW CREATE TABLE $table";
       $req_create_table = mysql_query($sql_create_table);
       $create_table = mysql_fetch_array($req_create_table);
       fwrite($inF,$create_table[1].";\n");
       fwrite($inF,"\n--\n-- Remplissage de $table\n\n");
       $sql_fill_table = "SELECT * FROM $table";
       $req_fill_table = mysql_query($sql_fill_table);
     
       // Les insert...
       while ($row = mysql_fetch_assoc($req_fill_table)) {
          $line_insert = "INSERT INTO $table (";
          $l_value = ") VALUES (";
          foreach ($row as $field => $value) {
             $line_insert .= "`$field`, ";
             $l_value .= "'".mysql_real_escape_string($value)."', ";
          }
          $line_insert = substr($line_insert, 0, -2);
          $l_value = substr($l_value, 0, -2);
          fwrite($inF,$line_insert.$l_value.");\n");
       }
    }
    fclose($inF);
    }
     
     
    ?>

    Julien

Discussions similaires

  1. sql server:creation backup d'une base de donnée
    Par yucf_miagiste dans le forum Administration
    Réponses: 3
    Dernier message: 25/09/2007, 15h41
  2. [PAMC11]Script de génération d'une base de données
    Par tbastien dans le forum Sybase
    Réponses: 1
    Dernier message: 22/04/2007, 01h03
  3. Réponses: 6
    Dernier message: 07/04/2007, 15h16
  4. [SQL SERVER 2005] comment créer une base de données ?
    Par Syrrus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/03/2007, 14h26
  5. [C#/SQL Server 2005] Comment créer une base de donnée par le code ?
    Par FraktaL dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/09/2006, 17h27

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