2015-03-16 2 views
-1

Мне нужно создать кнопку на панели администратора, которая при нажатии создаст резервную копию базы данных.Создание резервной копии MySQL из панели администратора

Я не могу найти способ сделать это без командной строки или без использования phpMyAdmin Export.

Кнопка должна быть выполнена с использованием php или любой другой альтернативы.

Любая помощь или совет или хотя бы идея была бы приветствована.

+1

** Возможный дубликат: ** [http://stackoverflow.com/questions/3751069/backup-a-mysql-database-and-download-as-a-file](http://stackoverflow. com/questions/3751069/backup-a-mysql-database-and-download-as-a-file) –

+0

[This] (http://stackoverflow.com/questions/6750531/using-a-php-file-to -generate-a-mysql-dump) должен работать для вас. –

ответ

0

Вы могли бы сделать некоторые более или менее основные PHP-скрипт для него, как это:

$link = mysqli_connect($host,$user,$pass,$dbname); 
$tables = array(); 
$result = mysqli_query('SHOW TABLES'); 

while($row = mysqli_fetch_row($result)){ 
    $tables[] = $row[0]; 
} 

foreach($tables as $table) 
{ 
    $result = mysqli_query('SELECT * FROM '.$table); 
    $num_fields = mysql_num_fields($result); 

    $return.= 'DROP TABLE '.$table.';'; 
    $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); 
    $return.= "\n\n".$row2[1].";\n\n"; 

    for ($i = 0; $i < $num_fields; $i++) 
    { 
     while($row = mysql_fetch_row($result)) 
     { 
      $return.= 'INSERT INTO '.$table.' VALUES('; 
      for($j=0; $j<$num_fields; $j++) 
      { 
       $row[$j] = addslashes($row[$j]); 
       $row[$j] = ereg_replace("\n","\\n",$row[$j]); 
       if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } 
       if ($j<($num_fields-1)) { $return.= ','; } 
      } 
      $return.= ");\n"; 
     } 
    } 
    $return.="\n\n\n"; 
} 

//save file 
$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+'); 
fwrite($handle,$return); 
fclose($handle); 

Надеется, что это помогает! Этот код просто входит в каждую таблицу, получает каждую строку и сохраняет ее в $return, после чего он записывает $return в файлы, которые называются просто автоматически! Вам нужно только заполнить некоторые переменные, такие как настройки базы данных и свойства файла в конце.

+0

Что это значит, просто просто хватает всю информацию из БД, чтобы ее можно было использовать снова на той же БД со всеми полями и свойствами, такими как уже настроенные кодировки, правильно? Единственное, что меня смущает, - это то, почему вам нужно отказаться от стола? Не могли бы вы объяснить код немного больше? – Alexey

+0

Да, это тоже часть кода, которая зависит от вашего выбора. Вы хотите удалить таблицы или просто выполнить резервное копирование данных. И действительно, кодировки и т. Д. Не принимаются с этим. –

Смежные вопросы