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);
}
?> |
Partager