Script PHP sauvegardes tables d'une base de données

Script PHP sauvegardes tables d'une base de données - PHP - Programmation

Marsh Posté le 03-01-2012 à 06:50:46    

Bonjour à tous et toutes,
 
J'ai trouvé un script PHP qui me permet de sauvegarder une base de données complète :
 

Code :
  1. #!/usr/local/bin/php
  2. <?php
  3. // création d'une fonction comportant les identifiants de connexion au FTP :
  4. function mysql_structure() {
  5. $host = 'xxxx';
  6. $user = 'xxxx';
  7. $pass = 'xxxx';
  8. $base = 'xxxx';
  9. // création d'un fichier affichant en boucle le contenu des tuples de la base :
  10. mysql_connect($host, $user, $pass);
  11. mysql_select_db($base);
  12. $tables = mysql_list_tables($base);
  13. while ($donnees = mysql_fetch_array($tables))
  14. {
  15. $table = $donnees[0];
  16. $res = mysql_query("SHOW CREATE TABLE $table" );
  17. if ($res)
  18. {
  19. $insertions = "";
  20. $tableau = mysql_fetch_array($res);
  21. $tableau[1] .= ";";
  22. $dumpsql[] = str_replace("\n", "", $tableau[1]);
  23. $req_table = mysql_query("SELECT * FROM $table" );
  24. $nbr_champs = mysql_num_fields($req_table);
  25. while ($ligne = mysql_fetch_array($req_table))
  26. {
  27. $insertions .= "INSERT INTO $table VALUES(";
  28. for ($i=0; $i<=$nbr_champs-1; $i++)
  29. {
  30. $insertions .= "'" . mysql_real_escape_string($ligne[$i]) . "', ";
  31. }
  32. $insertions = substr($insertions, 0, -2);
  33. $insertions .= " );\n";
  34. }
  35. if ($insertions != "" )
  36. {
  37. $dumpsql[] = $insertions;
  38. }
  39. }
  40. }
  41. return implode("\r", $dumpsql);
  42. }
  43. // creation d'une fonction file_put_content si le script est en PHP4 :
  44. if(!function_exists('file_put_contents')) {
  45. function file_put_contents($filename, $data, $file_append = false) {
  46. $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
  47. if(!$fp) {
  48. trigger_error('file_put_contents ne peut pas écrire dans le fichier.', E_USER_ERROR);
  49. return;
  50. }
  51. fputs($fp, $data);
  52. fclose($fp);
  53. }
  54. }
  55. // création du fichier de dump sur le même niveau que ce fichier dump.php
  56. file_put_contents("sqldump_".date("d-n-Y" ).".sql", mysql_structure());
  57. // effacement du fichier precedant (créé 7 jours plus tot)
  58. $time_old = getdate(mktime()-(7*24*3600));
  59. $an = $time_old['year'];
  60. $mois = $time_old['mon'];
  61. $jour = $time_old['mday'];
  62. // formatage des jours à 1 chiffre
  63. for($k=1; $k<10; $k++)
  64. {
  65. if ($jour==$k)
  66. {
  67. $jour='0'.$jour;
  68. }
  69. }
  70. $date_old=$jour.'-'.$mois.'-'.$an;
  71. $file_old="sqldump_".$date_old.".sql";
  72. unlink($file_old);
  73. ?>


 
Ca fonctionne bien, mais j'aimerai modifier ce script afin de ne sauvegarder que certaines tables d'une bases de données (en indiquant les tables à sauvegarder dans le script). Est-ce que certains d'entre-vous pourraient me donner un coup de main ?
 
Idem pour rajouter la fonction DROP TABLES IF EXIST, où dois-je faire ça ?
 
Merci d'avance....et bonne année !
 


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 03-01-2012 à 06:50:46   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed