Poster une réponse  Créer un sujet 
Faire un dump d'une base MySQL
Auteur Message
admin_rc1
Junior Member
**


Messages : 1
Groupe : Membres
Inscription : Jan 2008
Statut : Hors ligne
Réputation : 0
Message : #1
Faire un dump d'une base MySQL

Bonjour

J'attaque php mais c'est dur

Votre script m'intéresse Faire un dump d'une base MySQL, mais j'avoue ne pas comprendre la fonctionnalité,
Merci de m'aider

20/01/2008 21:42
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
CrazyCat
Administrator
*******


Messages : 130
Groupe : Administrateurs
Inscription : Feb 2007
Statut : Absent
Réputation : 0
Message : #2
RE: Faire un dump d'une base MySQL

Coment ça la fonctionnalité?
Le script permet d'extraire l'intégralité de la base, à la manière de ce que fait phpMyAdmin...


L'erreur est humaine, mais il faut un ordinateur pour provoquer une catastrophe
22/01/2008 21:40
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
cybertaf
Junior Member
**


Messages : 5
Groupe : Membres
Inscription : Apr 2008
Statut : Hors ligne
Réputation : 0
Message : #3
RE: Faire un dump d'une base MySQL

Salut !
J'utilise ton script et je le trouve très pratique.
Par contre, est-il possible de le modifier afin qu'il fasse un dump du style "insertion étendues" afin d'alléger le fichier généré ?
Merci Wink

02/04/2008 13:42
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
cybertaf
Junior Member
**


Messages : 5
Groupe : Membres
Inscription : Apr 2008
Statut : Hors ligne
Réputation : 0
Message : #4
RE: Faire un dump d'une base MySQL

Petit UP... Rolleyes

09/04/2008 17:28
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
CrazyCat
Administrator
*******


Messages : 130
Groupe : Administrateurs
Inscription : Feb 2007
Statut : Absent
Réputation : 0
Message : #5
RE: Faire un dump d'une base MySQL

Ah oui désolé, j'ai un peu planché sur la question est c'est à priori faisable, il faut que j'analyse un peu plus cette option.
En fait, elle groupe des insert, mais je ne sais pas sur quoi est basé la limite et c'est ce que je recherche.

La suite dans peu de temps (on va dire 1 semaine maxi)


L'erreur est humaine, mais il faut un ordinateur pour provoquer une catastrophe
12/04/2008 21:02
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
cybertaf
Junior Member
**


Messages : 5
Groupe : Membres
Inscription : Apr 2008
Statut : Hors ligne
Réputation : 0
Message : #6
RE: Faire un dump d'une base MySQL

Cool, merciSmile

13/04/2008 01:17
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
cybertaf
Junior Member
**


Messages : 5
Groupe : Membres
Inscription : Apr 2008
Statut : Hors ligne
Réputation : 0
Message : #7
RE: Faire un dump d'une base MySQL

Hello !
Je passais par là, j'ai vu de la lumière sur le topic...Rolleyes
Tongue

25/04/2008 11:12
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
cybertaf
Junior Member
**


Messages : 5
Groupe : Membres
Inscription : Apr 2008
Statut : Hors ligne
Réputation : 0
Message : #8
RE: Faire un dump d'une base MySQL

Salut.

Pour ceux que ça intéresse:

Code :
<?php

// Connexion à MySql

$db_base = "nomdelabase";

header("Pragma: no-cache");
header("Content-Type: application/x-gzip; name=\"$db_base.sql.gz\"");
header("Content-Disposition: attachment;filename=\"$db_base.sql.gz\"");
header("Content-Transfer-Encoding: binary");

echo gzencode("--\n");
echo gzencode("-- Dump de la base $db_base\n");
echo gzencode("--\n");

$sql_tables = "SHOW TABLES";
$req_tables = mysql_query($sql_tables);
while (list($table) = mysql_fetch_row($req_tables)) {
   echo gzencode("\n--\n-- Table $table\n\n");
   echo gzencode("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);
   echo gzencode($create_table[1].";\n");
   echo gzencode("\n--\n-- Remplissage de $table\n\n");
   $sql_fill_table = "SELECT * FROM $table";
   $req_fill_table = mysql_query($sql_fill_table);

$req_fin = mysql_query ( " SELECT COUNT(*) FROM $table " );
$fin = mysql_fetch_row($req_fin);

if ( $fin['0'] != 0 ) {
  $test = 1;
  echo gzencode("INSERT INTO $table VALUES\n");

   while ($row = mysql_fetch_assoc($req_fill_table)) {
      $l_value = "(";
      foreach ($row as $field => $value) {
         $line_insert = "`$field`, ";
         $l_value .= "'".mysql_real_escape_string($value)."', ";
      }
      $l_value = substr($l_value, 0, -2);

      echo gzencode($l_value.")");
      
      if ( $test == $fin['0'] ) {
        echo gzencode(";\n"); }
        else {
        echo gzencode(",\n");
        $test++; }
   }
  }
}
mysql_close();

?>


Cela génère un dump étendu et compressé au format GZIP.

@+

01/07/2008 16:39
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris

Aller à :