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
| // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//ici les parametres pour la connexion
$host = "localhost";
$user = "root";
$passe = "";
$base = "ecopeche";
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function Compacter($base) { // Permet de compacter la base avant de lancer toute la procédure
$tables = mysql_list_tables($base);
while ($enr = @mysql_fetch_row($tables))
@mysql_query("OPTIMIZE TABLE ".$enr[0]);
}
if($connexion = @mysql_connect($host,$user,$passe)) { // on effectue la connexion
Compacter($base);
$select_base=@mysql_select_db($base); // Selection de la base de données
// CREATION DU FICHIER
$fname = "backup_".$base.".sql";
$f2 = fopen($fname,"w");
fputs($f2,"# Sauvegarde de base de données\n");
fputs($f2,"# Batch par Florent MARIE aka fmarie - 2005\n\n");
$tables = mysql_list_tables($base);
while ($enr = @mysql_fetch_row($tables)) {
fputs($f2,"# Les tables traitées sont ".$enr[0].";\n");
}
fputs($f2,"\n");
$tables = mysql_list_tables($base);
while ($enr = @mysql_fetch_row($tables)) {
fputs($f2,"DELETE FROM $enr[0];\n");
}
$tables = mysql_list_tables($base);
while ($enr = @mysql_fetch_row($tables)) {
$res = mysql_query("SELECT * FROM $enr[0]");
// le nombre de champs de la table
$champs = mysql_num_fields($res);
// Pour chaque ligne
while($val=mysql_fetch_array($res)) {
$tmp = "INSERT INTO ".$enr[0]." VALUES(";
$c=0;
// Pour chaque champ
while($c < $champs) {
// Une virgule sauf au premier
if($c>0) $tmp .= ", ";
// Le contenu du champ
$tmp .= "'".AddSlashes($val[$c])."'";
$c++;
}
$tmp .= ");\n";
// Ecrit la ligne
fputs($f2,$tmp);
}
}
fclose($f2);
// ZIP DU FICHIER
include("zip.lib.php");
// Compresse le fichier
$zipfile = new zipfile();
$zipfile -> addFile(implode("",file($fname)), $fname);
// Sauve le zip
$f2=fopen($fname.".zip","w");
fputs($f2,$zipfile -> file());
fclose($f2);
// NETTOYAGE
// Détruit le fichier initial
// mais laisse le zip au cas où...
unlink($fname); ?> |
Partager