· 8 years ago · Jan 27, 2018, 10:40 AM
1<?php
2
3
4 $base = "toto";
5 $serveur = "localhost";
6 $password = "";
7 $user = "root";
8
9
10 /* Connexion à MySQL */
11$p_base = mysql_connect($serveur, $user, $password) or die("Echec de connexion au serveur");
12
13 /* Ouverture d`une base */
14mysql_select_db($base) or die("Echec de connexion à la Base");
15
16
17 // Entête du fichier de sauvegarde
18$flux = "-- Sauvegarde de la base " . $base . "\n";
19$flux .= "-- faite le " . date("j, n, Y") . "\n";
20$flux .= "-- a l`adresse : " . $_SERVER["HTTP_HOST"] . "\n";
21$flux .= "-- -----------------------------------------------\n";
22
23
24
25 $requete = "Show table status from " . $base;
26 $p_resultat1 = mysql_query($requete);
27
28if(!$p_resultat1) { // Test du code retour de l`exécution
29 if ($_SERVER[`SERVER_NAME`] == "localhost") {
30 echo "<hr />Requête = " . $requete . "\n";
31 echo "<br />Erreur N°" . mysql_errno() . ": " . mysql_error() . "\n";
32}
33 die("Echec d`exécution de la requête");
34}
35while($resultat1 = mysql_fetch_object($p_resultat1)) {
36
37 // Boucle sur chaque table de la base
38
39
40 // commentaire : nom de la table
41 $flux .= "\n -- table " . $resultat1->Name . " ---\n";
42 // On génère un Drop "préventif" de la table
43 $flux .= "DROP TABLE IF EXISTS `" . $resultat1->Name . "`;\n";
44
45
46 $flux .= "CREATE TABLE " . $resultat1->Name . " (\n";
47
48
49 $demande = "SHOW FULL FIELDS FROM " . $resultat1->Name ;
50 $p_resultat2 = mysql_query($demande);
51 $sipremier = true;
52
53 if(!$p_resultat2) { // Test du code retour de l`exécution
54 if ($_SERVER[`SERVER_NAME`] == "localhost") {
55 echo "<hr />Requête = " . $demande . "\n";
56 echo "<br />Erreur N°" . mysql_errno() . ": " . mysql_error() . "\n";
57 }
58 die("Echec d`exécution de la requête");
59 }
60
61 while($resultat2 = mysql_fetch_object($p_resultat2)) {
62 if(substr($resultat2->Type,0,3) == "int" or $resultat2->Type == "float")
63$numerique[] = true;
64else
65$numerique[] = false;
66 if($sipremier == false)
67 $flux .= ",\n";
68 else
69 $sipremier = false;
70 $flux .= $resultat2->Field . " " . $resultat2->Type;
71 if($resultat2->Null == "NO")
72 $flux .= " Not null";
73
74 }
75 $flux .= "); \n";
76 mysql_free_result($p_resultat2);
77
78 /* Boucle 3 sur le contenu d'une table */
79
80 $demande = "select * from " . $resultat1->Name ;
81 $p_resultat3 = mysql_query($demande);
82 // $sipremier = true;
83
84 if(!$p_resultat3) { // Test du code retour de l`exécution
85 if ($_SERVER[`SERVER_NAME`] == "localhost") {
86 echo "<hr />Requête = " . $demande . "\n";
87 echo "<br />Erreur N°" . mysql_errno() . ": " . mysql_error() . "\n";
88 }
89 die("Echec d`exécution de la requête");
90 }
91
92 while($resultat3 = mysql_fetch_array($p_resultat3)) {
93 $flux .= "Insert into `" . $resultat1->Name . "` values (";
94 $premiere_fois = true;
95 foreach($resultat3 as $cle => $valeurs) {
96 if(is_int($cle))
97 continue;
98
99
100 if($premiere_fois == true)
101 $premiere_fois = false;
102 else
103 $flux .= ', ';
104
105 if(is_numeric($valeurs))
106 $flux .= $valeurs;
107 else
108 $flux .= '"' . $valeurs . '"';
109
110 }
111 $flux .= ");\n";
112 }
113
114}
115mysql_free_result($p_resultat1);
116
117
118
119?>