Как сделать резервную копию базы данных mysql и загрузить ее как .sql-файл с помощью PHP-кодов
Очень простым решением было бы что-то вроде (первый пример): http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx
Естественно, это приведет только к дампу данных таблицы.
Что вы можете сделать, так это использовать этот код:
http://snipplr.com/view/173/mysql-dump/
То, что делает этот код, фактически получает описание таблицы (т. Е. Ее структуру), создает все таблицы и толкает данные. в значительной степени, как и любой другой инструмент.
Тогда это просто вопрос сохранения его из строки в файл (например, file_put_contents () или что-то подобное, в зависимости от ваших предпочтений и необходимости)
mysqldump -u username -p password database > file
Кроме того, phpMyAdmin может сделать это тоже с помощью инструмента «Экспорт».
Использовать phpmyadmin
Редактировать:
Вы можете использовать shell_exec для выполнения этой команды
mysqldump -u имя_пользователя -p пароль базы данных> файл
Это создаст файл дампа, а затем перенаправит пользователя в этот сгенерированный файл.
У вас есть phpmyadmin? Если это так, вы можете экспортировать его оттуда, нажав «Экспорт» вверху (на выбранной таблице / db).
Я знаю его немного поздно, но надеюсь, что кто-то еще найдет это.
//php file - html code: require_once 'connect.php'; //holds database variables with connect details require_once 'Admin_DatabaseFiles_Backup.php'; //Include the admin logout script <form action="" method="post" class="form form"> <!--<input type="hidden" name="backup" value="1" />--> <div class="float_left w200"> <p> <label class="title">Backup database</label> <span class="left"> <input type="checkbox" name="db" value="1" checked="checked"/> </span> </p> <p> <label class="title">Backup files</label> <span class="left"> <input type="checkbox" name="files" value="1" checked="checked" /> </span> </p> </div> <p class="float_left"> <input type="submit" name="submit" value="Backup" class="button" /> </p> </form> //php file Admin_DatabaseFiles_Backup.php: <?php if ($_POST['submit']=="Backup"){ if ($_POST['db'] == "1"){ $directory = "DatabaseFileBackups/"; $dateAndTime = "".date('dmYHi-s'); $fileName = "".$dbname.$dateAndTime.".sql"; $backupFile = "mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost $dbname > ".$directory.$fileName; exec($backupFile,$output); if($output == ''){ echo = '<br />Failed To Backup Database!'; }else{ echo = '<br />Database Backup Was Successful!'; } } if ($_POST['files'] == "1"){ echo 'Seleceted files'; } } ?>
Если у вас есть phpMyAdmin, вы можете сделать это в меню «Экспорт».
Если вы ищете инструмент командной строки, посмотрите на mysqldump .