File size: 4.57Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Управление базой данных
=============================================
Official website: http://shcms.ru
=============================================
Код зашищен авторскими правами
=============================================
*/
define('SHCMS', true);
include_once'../system/inc/basic_settings.php';
$shcmsengine['title'] = 'SHCMS Engine Управление базой данных';
include_once'../template/head.php';
registrat();
$adminka ->admin();
if($_POST['submit'])
{
$submit = $_POST['submit'];
}
if(!$submit)
{
$sql = "SHOW TABLES ";
$result = mysql_query($sql);
if (!$result) {
echo "Ошибка базы, не удалось получить список таблиц\n";
echo 'Ошибка MySQL: ' . mysql_error();
exit;
}
echo '<div class="maintitle mainrazd">В базе всего: '.mysql_num_rows($result).' таблиц</div>';
echo '<div class="maintext">';
while ($row = mysql_fetch_array($result)) {
echo "<div class='posts'><img src='../template/icon/sprites.png'> <b>{$row[0]} </b><br/>столбиков: ". mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`"))."</div>\n";
}
echo '</div>';
mysql_free_result($result);
echo '<div class="posts"><img src="../template/icon/warning.png"> Все таблицы сохраняются в папке admin_list/backup/ и по желаю можете еще и на компьютере сохранить.<br/>
Для начала проверьте права 777 к папке backup/ </div>';
echo'<form action="?" method="post">';
echo '<input type="submit" name="submit" value="Сохранить бэкап">';
echo '</form>';
}
else
{
define('MSB_NL', "\r\n");
define('MSB_STRING', 0);
define('MSB_DOWNLOAD', 1);
define('MSB_SAVE', 2);
class MySQL_Backup
{
var $characters = '';
var $backup_dir = '';
var $returnSQL = '';
function Execute()
{
return $this->_active();
}
function _active()
{
$return = $this->_Query('SHOW TABLES');
while($catch = mysql_fetch_array($return))
{
$value[] = $catch['Tables_in_'.$this->database];
}
$this->_createTable($value);
if($take = $this->_SaveToFile())
{
echo $this->returnSQL;
}
else{
die('Не могу сохранить файл, не стоят права на папку.');
}
}
function _createTable($val)
{
foreach($val as $a)
{
@$create = mysql_fetch_array($this->_Query('SHOW CREATE TABLE '.$a));
$this->returnSQL .= '
--
-- Структура таблицы `' . $a . '`;
--'.MSB_NL;
$this->returnSQL .= 'DROP TABLE IF EXISTS `' . $a . '`;'.MSB_NL;
$this->returnSQL .= $create[1].';'.MSB_NL.MSB_NL.MSB_NL;
$this->returnSQL .= $this->createInsert($a);
}
}
function createInsert($table)
{
$value = '';
if (!($result = $this->_Query('SELECT * FROM ' . $table)))
{
return false;
}
while ($row = mysql_fetch_row($result))
{
$values = '';
foreach ($row as $data)
{
$values .= '\'' . addslashes($data) . '\', ';
}
$values = substr($values, 0, -2);
$value .= 'INSERT INTO ' . $table . ' VALUES (' . $values . ');' . MSB_NL;
}
return $value;
}
/* Функции для соеденения и запросов */
function _Connect()
{
mysql_query('SET NAMES '.$this->characters);
}
function _Query($sql)
{
$result = mysql_query($sql);
return $result;
}
/* END Функции для соеденения и запросов */
function _SaveToFile()
{
$fname = $this->backup_dir.''.time().'_'.DBNAME.'.sql';
if (!($f = fopen($fname, 'w+')))
return false;
fwrite($f, $this->returnSQL);
fclose($f);
$this->_DownloadFile($fname);
return $fname;
}
function _DownloadFile($fname)
{
messag('Бекап сайта успешно сохранено в папке admin_list/backup/');
echo ("<a href='backup.php'>Назад</a>");
include_once'../template/foot.php';
exit;
return true;
}
}
$backup = new MySQL_Backup();
$backup->fname_format = 'Ymd-His';
$backup->server = DBHOST;
$backup->username = DBUSER;
$backup->password = DBPASS;
$backup->database = DBNAME;
// Кодировка базы
$backup->characters = 'UTF8';
// Место куда будем заливать дамп. Не забываем про слеши.
$backup->backup_dir = 'backup/';
$run = $backup->Execute();
echo $run;
}
include_once'../template/foot.php';
?>