Jump to content

Backup/Export mysql database


biggieuk

Recommended Posts

Hi all,

 

I have a database of 8 tables in mysql and wanted the user to be able to export a backup of the database to their computer.

 

I also need the user to be able to export a partially blank database so that all but a couple of the tables contain no data but retain the structure.

 

Is this possible using PHP?

 

thanks for help or guidance with this!

 

Dan.

Link to comment
https://forums.phpfreaks.com/topic/114074-backupexport-mysql-database/
Share on other sites

Obviously ive tried Google..  ::)

 

However, ive not managed to find anything that downloads backup to the users computer.

 

Here is my current code:

 

$host = $hostname_hwbltaconf;
$dbuser = $username_hwbltaconf;
$dbpword = $password_hwbltaconf;
$dbname = $database_hwbltaconf;

$backupFile = date("Y-m-d") . '.gz';
# Use system functions: MySQLdump & GZIP to generate compressed backup file
$command = "mysqldump -h$host -u$dbuser -p$dbpword $dbname | gzip> $backupFile";
system($command);
# Start the download process
$len = filesize($backupFile);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public"); 
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$filename;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
@readfile($backupFile);
# Delete the temporary backup file from server
unlink($backupFile);

 

This is held in a seperate php page and when the 'backup' link is clicked it only shows that i can download backupdb.php (the file where the code is stored).

 

Any ideas how i can download the .gz file instead?

 

Thanks!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.