File size: 6.03Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Управление базой данных
=============================================
Official website: http://shcms.ru
=============================================
Код зашищен авторскими правами
=============================================
*/
define('SHCMS', true);
include_once'../system/inc/system_core.php';
$shcmsengine['title'] = Lang::get('SHCMS Engine Управление базой данных');
include_once'../template/head.php';
engine::available();
user::users_admin();
if($user_id and $user4['team'] != 6) {
echo engine::errors(Lang::get('У вас недостаточно прав для доступа'));
header('Refresh: 1; url=/index.php?'.$conservation.'&');
include_once'../template/foot.php';
exit();
}
if($_POST['submit'])
{
$submit = $_POST['submit'];
}
if(!$submit)
{
$sql = "SHOW TABLES ";
$result = mysql_query($sql);
if (!$result) {
echo Lang::get('Ошибка базы, не удалось получить список таблиц').'<br/>';
echo Lang::get('Ошибка MySQL:'). mysql_error();
exit;
}
//Вывод всех таблиц
echo '<div class="maintitle mainrazd">'.Lang::get('В базе всего:').mysql_num_rows($result).Lang::get('таблиц').'</div>';
echo '<div class="maintext">';
while ($row = mysql_fetch_array($result)) {
if($_GET['mysql'] == $row[0]) {
echo "<div class='posts'><img src='../template/icon/sprites.png'> <b><a href='backup.php'><font color=red;>{$row[0]}</font></a> </b><span class='maintime'>".Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`"))."</span></div>\n";
}else {
echo "<div class='posts'><img src='../template/icon/sprites.png'> <b><a href='?mysql={$row[0]}'>{$row[0]}</a> </b><span class='maintime'>".Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`"))."</span></div>\n";
}
//Вывод столбиков
if($_GET['mysql'] == $row[0]) {
echo '<div class="maintitle mainrazd">'.Lang::get('столбиков:').mysql_num_rows(mysql_query("SHOW COLUMNS FROM `{$row[0]}`")).'</div>';
echo '<div class="maintext">';
$results = mysql_query("SHOW COLUMNS FROM `".$row[0]."`");
if (!$results) {
echo 'Ошибка при выполнении запроса: ' . mysql_error();
exit;
}
if (mysql_num_rows($results) > 0) {
while ($rows = mysql_fetch_array($results)) {
echo '
<table class="userstop">
<tr>
<td >'.$rows[0].' </td>
<td>'.$rows[1].'</td>
</tr>
</table>
';
}
}
echo '</div></div>';
}
}
echo '</div>';
mysql_free_result($result);
echo '<div class="posts"><img src="../template/icon/warning.png"> '.Lang::get('Все таблицы сохраняются в папке admin_list/backup/ и по желаю можете еще и на компьютере сохранить.<br/>Для начала проверьте права 777 к папке backup/').'</div>';
echo'<form action="?" method="post">';
echo '<input type="submit" name="submit" value="'.Lang::get('Сохранить бэкап').'">';
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($t12ake = $this->_SaveToFile())
{
echo $this->returnSQL;
}
else{
die(Lang::get('Не могу сохранить файл, не стоят права на папку.'));
}
}
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) {
engine::correct(Lang::get('Бекап сайта успешно сохранено в папке admin_list/backup/'));
echo (Lang::get('<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';
?>