Voici une fonction PHP qui sauvegarde votre base de données. Imaginez la puissance de cette fonction et le temps gagné.
Lorsque vous l’exécutez, elle créé un fichier .sql et sauvegarde toute votre base, un peu comme la fonction « exporter » de phpmyadmin.
J’aimerais pouvoir linker le site sur lequel j’ai trouvé cette fonction mais je ne le retrouve plus! Je l’utilise personnellement depuis plusieurs mois.
dumpMySQL(): exporter votre base de données complète
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
| //Cree un ficher .sql pour sauvegarder la base
function dumpMySQL($serveur, $login, $password, $base, $mode)
{
$connexion = mysql_connect($serveur, $login, $password);
mysql_select_db($base, $connexion);
$entete = "-- ----------------------\n";
$entete .= "-- dump de la base ".$base." au ".date("d-M-Y")."\n";
$entete .= "-- ----------------------\n\n\n";
$creations = "";
$insertions = "\n\n";
$listeTables = mysql_query("show tables", $connexion);
while($table = mysql_fetch_array($listeTables))
{
// si l'utilisateur a demandé la structure ou la totale
if($mode == 1 || $mode == 3)
{
$creations .= "-- -----------------------------\n";
$creations .= "-- creation de la table ".$table[0]."\n";
$creations .= "-- -----------------------------\n";
$listeCreationsTables = mysql_query("show create table ".$table[0], $connexion);
while($creationTable = mysql_fetch_array($listeCreationsTables))
{
$creations .= $creationTable[1].";\n\n";
}
}
// si l'utilisateur a demandé les données ou la totale
if($mode > 1)
{
$donnees = mysql_query("SELECT * FROM ".$table[0]);
$insertions .= "-- -----------------------------\n";
$insertions .= "-- insertions dans la table ".$table[0]."\n";
$insertions .= "-- -----------------------------\n";
while($nuplet = mysql_fetch_array($donnees))
{
$insertions .= "INSERT INTO ".$table[0]." VALUES(";
for($i=0; $i < mysql_num_fields($donnees); $i++)
{
if($i != 0)
$insertions .= ", ";
if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob")
$insertions .= "'";
$insertions .= addslashes($nuplet[$i]);
if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob")
$insertions .= "'";
}
$insertions .= ");\n";
}
$insertions .= "\n";
}
}
mysql_close($connexion);
$name = "backup/sauv-$base-".date("Y-M-d").".sql";
$fichierDump = fopen($name, "wb");
fwrite($fichierDump, $entete);
fwrite($fichierDump, $creations);
fwrite($fichierDump, $insertions);
fclose($fichierDump);
} |