首页 > 代码库 > PHP导出MYSQL数据库并压缩

PHP导出MYSQL数据库并压缩

PHP可以一键导出MYSQL备份文件,并压缩存放,尽管phpMyAdmin有这功能,不过若你自己开发网站或者是为别人写CMS,你不应该要求别人用你程序的时候再去另外用phpMyAdmin备份MYSQL,这应该是你CMS中的一个功能,那么PHP如何实现一键备份MYSQL数据,这里是指把MYSQL内容全部导出成SQL文件,然后压缩SQL,介绍两种方法如下:

第一种:

<?php$username = "root";//你的MYSQL用户名$password = "";//密码$hostname = "localhost";//MYSQL服务器地址$dbname   = "cars";//数据库名$dumpfname = $dbname . "_" . date("Y-m-d_H-i-s").".sql";$command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname --user=$username ";if ($password) $command.= "--password=". $password ." ";$command.= $dbname;$command.= " > " . $dumpfname;system($command);// 压缩成ZIP文件$zipfname = $dbname . "_" . date("Y-m-d_H-i-s").".zip";$zip = new ZipArchive();if($zip->open($zipfname,ZIPARCHIVE::CREATE)){   $zip->addFile($dumpfname,$dumpfname);   $zip->close();}if (file_exists($zipfname)) {    header(‘Content-Description: File Transfer‘);    header(‘Content-Type: application/octet-stream‘);    header(‘Content-Disposition: attachment; filename=‘.basename($zipfname));    flush();    readfile($zipfname);    exit;}?>

上述代码可保存成一个PHP文件,如mysqlbak.php,注意,此文件必须有写权限。为了使用方便,你可以在后台给此文件一个链接,需要导出MYSQL时,你只需点击一下就执行备份导出操作。

第二种方法:不需要写权限,但不压缩SQL文件,代码如下:

<?phpob_start();$username = "root";$password = "";$hostname = "localhost";$dbname   = "test";$command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname  --user=$username ";if ($password) $command.= "--password=". $password ." ";$command.= $dbname;system($command);$dump = ob_get_contents();ob_end_clean();header(‘Content-Description: File Transfer‘);header(‘Content-Type: application/octet-stream‘);header(‘Content-Disposition: attachment; filename=‘.basename($dbname . "_" . date("Y-m-d_H-i-s").".sql"));flush();echo $dump;exit();?>

两种方法你可以选用一种,同样可将第二种方法保存成mysqlbak.php文件,在后台给个链接,用着方便。

PHP导出MYSQL数据库并压缩