<?php
|
/*---------------------------------------------------------------*/
|
/*
|
Titre : Sauvegarde complète d'une base de données MySQL
|
|
URL : https://phpsources.net/code_s.php?id=1104
|
Date édition : 13 Sept 2019
|
Date mise à jour : 13 Sept 2019
|
Rapport de la maj:
|
- fonctionnement du code vérifié
|
*/
|
/*---------------------------------------------------------------*/
|
|
function dump_MySQL($serveur, $login, $password, $base, $mode)
|
{
|
|
$conn = mysqli_connect($serveur,$login, $password, $base);
|
|
|
$entete = "-- ----------------------\n";
|
$entete .= "-- dump de la base ".$base." au ".date("d-M-Y")."\n";
|
$entete .= "-- ----------------------\n\n\n";
|
$creations = "";
|
$insertions = "\n\n";
|
|
$listeTables = $conn->query("show tables");
|
while($table = mysqli_fetch_array($listeTables))
|
{
|
// structure ou la totalité de la BDD
|
if($mode == 1 || $mode == 2)
|
{
|
$creations .= "-- -----------------------------\n";
|
$creations .= "-- Structure de la table ".$table[0]."\n";
|
$creations .= "-- -----------------------------\n";
|
$listeCreationsTables = $conn->query("show create table ".$table[0])
|
;
|
while($creationTable = mysqli_fetch_array($listeCreationsTables))
|
{
|
$creations .= $creationTable[1].";\n\n";
|
}
|
}
|
// données ou la totalité
|
if($mode > 1)
|
{
|
$donnees = $conn->query("SELECT * FROM ".$table[0]);
|
$insertions .= "-- -----------------------------\n";
|
$insertions .= "-- Contenu de la table ".$table[0]."\n";
|
$insertions .= "-- -----------------------------\n";
|
while($nuplet = mysqli_fetch_array($donnees))
|
{
|
$insertions .= "INSERT INTO ".$table[0]." VALUES(";
|
for($i=0; $i < mysqli_num_fields($donnees); $i++)
|
{
|
if($i != 0)
|
$insertions .= ", ";
|
if(mysqli_fetch_field_direct($donnees, $i) == "string" ||
|
mysqli_fetch_field_direct($donnees, $i) == "blob")
|
$insertions .= "'";
|
$insertions .= addslashes($nuplet[$i]);
|
if(mysqli_fetch_field_direct($donnees, $i) == "string" ||
|
mysqli_fetch_field_direct($donnees, $i) == "blob")
|
$insertions .= "'";
|
}
|
$insertions .= ");\n";
|
}
|
$insertions .= "\n";
|
}
|
}
|
|
mysqli_close($conn);
|
|
$fichierDump = fopen("sauvegarde.sql", "wb");
|
fwrite($fichierDump, $entete);
|
fwrite($fichierDump, $creations);
|
fwrite($fichierDump, $insertions);
|
fclose($fichierDump);
|
|
echo "Sauvegarde terminée";
|
}
|
?>
|
|
|
Elly
08 Avril 2024 à 17:59Bonjour, Pour un projet personnel j'avais besoin d'une fonction de ce genre. Merci de m'avoir mâcher le travail, maintenant je n'ai plus qu'a adapter ça.
Invité
04 Oct 2021 à 12:42Bonjour, Je viens de découvrir et tester votre script ça fonction nickel chrome. Une remarque cependant : -Comment éviter la sauvegarde quand j'appuie sur F5 ou chargement de la page. Merci à vous pour votre réponse.