Файл: admin/backup/mysql.php
Строк: 41
<?php
include '../../engine/includes/start.php';
if (!$creator)
Core::stop();
$set['title'] = 'Резервное копирование базы данных';
require incDir . 'head.php';
echo '<div class="menu_razd">Выберите таблицы</div>';
if (!empty($_POST['table'])) {
$file = H . 'engine/files/backup/mysql/backup.' . (count($_POST['table']) === 1 ? current($_POST['table']) . '.date.' : null) . date('d.m.y.') . 'token.'. mt_rand(99,
999) . '.sql';
$backup = null;
foreach ($_POST['table'] as $table)
{
$backup .= 'DROP TABLE IF EXISTS `' . $table . '`;' . PHP_EOL;
$row = mysqli_fetch_row(mysqli_query($sql->db, 'SHOW CREATE TABLE `' . $table . '`'));
$backup .= $row[1] . ';' . PHP_EOL . PHP_EOL . PHP_EOL;
if (Core::form('with_data'))
{
$res = mysqli_query($sql->db, 'SELECT * FROM `' . $table . '`');
if (count($res) > 0)
{
while (($row = mysqli_fetch_assoc($res)))
{
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach ($values as $k => $v)
{
$values[$k] = my_esc($v);
$values[$k] = preg_replace("#(n|r){1,}#", 'n', $values[$k]);
}
$values2 = implode("', '", $values);
$values2 = "'" . $values2 . "'";
$backup .= "INSERT INTO `$table` (`$keys`) VALUES ($values2);rn";
}
$backup .= PHP_EOL . PHP_EOL;
}
}
}
file_put_contents($file, $backup);
Core::msg_show('Backup успешно создан!', 'msg');
}
echo '<div class="link">' . (isset($_GET['get']) ? '<a href="?">Снять все</a>' : '<a href="?get">Отметить все</a>') . '</div>';
$tab = mysqli_query($sql->db, 'SHOW TABLES');
echo '<form action="?backup" method="post">';
echo '<label><input type="checkbox" checked="checked" name="with_data" value="with_data"/> Экспорт содержимого</label><br />';
while ($table = mysqli_fetch_assoc($tab)) {
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 />';
}
?>
<input type="submit" name="create" value="Начать"/></form>
<div class="menu_razd">См. также</div>
<a href='/admin/backup/files.php'>
<div class="link">Резервное копирование файлов</div>
</a>
<a href='/admin/backup/list.php'>
<div class="link">Список Backup</div>
</a>
<a href='/admin/'>
<div class="link">Админка</div>
</a>
<?
require incDir . 'foot.php';