Просмотр файла admin/backup/mysql.php

Размер файла: 2.71Kb
  1. <?php
  2. include '../../engine/includes/start.php';
  3. if (!$creator)
  4. Core::stop();
  5. $set['title']='Резервное копирование базы данных';
  6. require incDir.'head.php';
  7. echo '<div class="menu_razd">Выберите таблицы</div>';
  8. if (!empty($_POST['table']))
  9. {
  10. $file = H . 'engine/files/backup/mysql/backup__' . (count($_POST['table']) === 1 ? current($_POST['table']) . '__' : null) . date('d_m_y_').mt_rand(99,999) . '__.sql';
  11.  
  12. $backup = NULL;
  13.  
  14. foreach ($_POST['table'] as $table)
  15. {
  16. $backup .= 'DROP TABLE IF EXISTS `'.$table.'`;'. PHP_EOL;
  17. $row = mysqli_fetch_row(mysqli_query($sql->db, 'SHOW CREATE TABLE `'.$table.'`'));
  18. $backup .=$row[1].';'.PHP_EOL . PHP_EOL . PHP_EOL;
  19. $res = mysqli_query($sql->db, 'SELECT * FROM `'.$table.'`');
  20. if (count($res) > 0)
  21. {
  22. while (($row = mysqli_fetch_assoc($res)))
  23. {
  24. $keys = implode("`, `", array_keys($row));
  25. $values = array_values($row);
  26. foreach ($values as $k=>$v)
  27. {
  28. $values[$k] = my_esc($v);
  29. $values[$k]=preg_replace("#(\n|\r){1,}#", '\n', $values[$k]);
  30. }
  31. $values2 = implode("', '", $values);
  32. $values2 = "'".$values2."'";
  33. $backup .= "INSERT INTO `$table` (`$keys`) VALUES ($values2);\r\n";
  34. }
  35. $backup .= PHP_EOL . PHP_EOL;
  36. }
  37. }
  38.  
  39. file_put_contents($file, $backup);
  40. Core::msg_show('Backup успешно создан!', 'menu_razd');
  41. }
  42.  
  43. echo '<div class="link">'. (isset($_GET['get']) ? '<a href="?">Снять все</a>' : '<a href="?get">Отметить все</a>') .'</div>';
  44. $tab = mysqli_query($sql->db, 'SHOW TABLES');
  45. echo '<form action="?backup" method="post">';
  46. while($table = mysqli_fetch_assoc($tab))
  47. {
  48. echo '<label><input type="checkbox" '.(isset($_GET['get'])?'checked="checked"':'').' name="table[]" value="'.$table['Tables_in_'.$set['mysql_db_name']].'"/> '.$table['Tables_in_'.$set['mysql_db_name']].'</label><br />';
  49. }
  50.  
  51. ?>
  52. <input type="submit" name="create" value="Начать" /></form>
  53. <div class="menu_razd">См. также</div>
  54. <a href='/admin/backup/files.php'><div class="link">Резервное копирование файлов</div></a>
  55. <a href='/admin/backup/list.php'><div class="link">Список Backup</div></a>
  56. <a href='/admin/'><div class="link">Админка</div></a>
  57. <?
  58. require incDir.'foot.php';