PHP导出MYSQL数据库并压缩
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件,代码如下:
<?php ob_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数据库并压缩的主要内容,如果未能解决你的问题,请参考以下文章
使用mysqldump备份导出MySQL数据库并压缩gzip
php用表格的形式显示连接的一张mysql表格,并具有直接在表格中修改、删除mysql表中数据的功能