me revoila!!!!
avec toujours autant de problémes et toujours avec le backup!!!!
voici le nouveaux script que j'ais trouvé!!!!
function backup($host , $login , $password , $chemin , $nom_fichier , $db){
// liste les tables
function get_list_tables ($db){
$i = 0;
$nbtab = mysql_list_tables ($db);
while ($i < mysql_num_rows ($nbtab)){
$tb_names[$i] = mysql_tablename ($nbtab, $i);
$i++;
}
return $tb_names;
}
// recuperation des donnees se trouvant dans les tables
function get_table_data ($table, $fd){
$tableau = array ();
$j = 0;
$resultat = mysql_query ("select * from $table");
if ($resultat == FALSE){
return "La requete dans la table '".$table."' a echoue.<br>";
}
else{
while ($valeurs = mysql_fetch_row ($resultat))
{
ecrire_ligne ($valeurs, $table, $fd);
}
return $valeurs;
}
}
// recuperation de la structure de la table
function get_table_structure ($struct, $fd){
$requete = mysql_query ("show create table $struct");
if ($requete == FALSE){
return "la recuperation de la structure '".$struct."' a
echoue.<br>";
}
else{
$structure = mysql_fetch_row ($requete);
$ligne = 0;
return $structure[1];
}
}
// integre la structure dans un fichier
function put_struct_into_file ($structure, $nom_table, $fd){
$struct = "#n# Structure de la table ".$nom_table."n#nn";
$struct .= $structure;
$struct .= "nn";
$ecriture = gzwrite ($fd, $struct, strlen ($struct));
if ($ecriture == 0){
return "erreur lors de l'ecriture de la strucuture dans le fichier
de sauvgarde.";
}
else{
return $fd;
}
}
// integre les donnees dans un fichier
function put_data_into_file ($donnees, $nom_table, $fd){
$lignes = 0;
$infos = "#n# donnees de la table ".$nom_table ."n#nn";
gzwrite ($fd, $infos, strlen ($infos));
while (isset ($donnees[$lignes])){
$appel_fonction = ecrire_ligne($donnees[$lignes], $nom_table, $fd);
$lignes++;
}
return $fd;
}
function ecrire_ligne ($donnees, $nom_table, $fd){
$case = 1;
$debut = "INSERT INTO '".$nom_table."' VALUES ('".$donnees[0]."'";
gzwrite ($fd, $debut, strlen ($debut));
while (isset ($donnees[$case])){
gzwrite ($fd, ", '".$donnees[$case]."'", strlen (",
'".$donnees[$case]."'"));
$case++;
}
$fin = ");nnn";
gzwrite ($fd, $fin, strlen ($fin));
}
//debut du backup
$emplacement = $chemin."/".$nom_fichier;
if (!isset ($chemin) || !is_dir ($chemin)){
return "$chemin n'est pas un repertoire ou n'existe pas.";
}
elseif (file_exists ($nom_fichier)){
return "Impossible de faire la sauvegarde, le fichier $nom_fichier
existe deja.";
}
else{
$connec = mysql_connect($host, $login, $password);
mysql_select_db($db, $connec);
$list = get_list_tables ($db);
$tab = 0;
$fd = gzopen ($emplacement, "a");
while (isset ($list[$tab])){
$structure = get_table_structure ($list[$tab], $fd);
$backup = put_struct_into_file ($structure, $list[$tab], $fd);
$query = get_table_data ($list[$tab], $fd);
$backup_suite = put_data_into_file ($query, $list[$tab], $fd);
$tab++;
}
gzclose ($fd);
mysql_close ($connec);
print "Sauvegarde reussie.";
}
le probléme: j'arrive pas a le faire fonctionner!!!!
et dans la function get_table_data je ne vois pas d'où vient $table!!! et si il faut que je le rentre, je doit faire comment??? |