CrazyCat Programming Factory
rendre internet plus accessible
 

Faire un dump d'une base MySQL

Logo sqlCe script vous permet de "dumper" une base mysql, c'est à dire d'obtenir un fichier SQL qui vous permet de recréer facilement votre base.
<?
// la base est définie dans $db_base
// il s'agit de "base_de_test"
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment;filename=\"$db_base.sql\"");
header("Content-Transfer-Encoding: binary");

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

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


--
-- Dump de la base base_de_test
--

--
-- Table auteurs

DROP TABLE IF EXISTS auteurs;
CREATE TABLE `auteurs` (
  `id_auteur` int(8) NOT NULL AUTO_INCREMENT,
  `nom_auteur` varchar(255) NOT NULL DEFAULT '',
  `verif_auteur` enum('yes','no') NOT NULL DEFAULT 'no',
  `cont_auteur` enum('yes','no') NOT NULL DEFAULT 'no',
  `edk_auteur` enum('yes','no') NOT NULL DEFAULT 'no',
  PRIMARY KEY  (`id_auteur`),
  UNIQUE KEY `nom_auteur` (`nom_auteur`),
  KEY `auteur` (`nom_auteur`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Remplissage de auteurs

INSERT INTO auteurs (`id_auteur`, `nom_auteur`, `verif_auteur`, `cont_auteur`, `edk_auteur`) VALUES ('1', 'CrazyCat', 'no', 'no', 'yes');
INSERT INTO auteurs (`id_auteur`, `nom_auteur`, `verif_auteur`, `cont_auteur`, `edk_auteur`) VALUES ('2', 'Linus Torvald', 'no', 'no', 'no');

--
-- Table categories

DROP TABLE IF EXISTS categories;
CREATE TABLE `categories` (
  `id_categorie` int(8) NOT NULL AUTO_INCREMENT,
  `nom_categorie` varchar(255) NOT NULL DEFAULT '',
  `verif_categorie` enum('yes','no') NOT NULL DEFAULT 'no',
  `vide_categorie` enum('yes','no') NOT NULL DEFAULT 'no',
  PRIMARY KEY  (`id_categorie`),
  KEY `nom_categorie` (`nom_categorie`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Remplissage de categories

INSERT INTO categories (`id_categorie`, `nom_categorie`, `verif_categorie`, `vide_categorie`) VALUES ('2', 'Articles', 'no', 'no');
INSERT INTO categories (`id_categorie`, `nom_categorie`, `verif_categorie`, `vide_categorie`) VALUES ('3', 'Livres', 'no', 'no');

Notez que les valeurs des champs auto-incréments sont conservées

©2006-2019 Geek Zone | eggdrop.fr | zeolia.net