用php实现备份数据库ZIP及导出_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 用php实现备份数据库ZIP及导出

用php实现备份数据库ZIP及导出

 2012/4/18 2:31:32  jackyrong  程序员俱乐部  我要评论(0)
  • 摘要:经常在有的PHP开源系统中,看到有备份数据库并导出的方法,其实代码不复杂,下面大概讲解下,以WINDOWS为例子,两类方法,一个是目录文件夹要有执行脚本权限的,一个个是没有权限的,代码如下:一)<?php$username="root";$password="";$hostname="localhost";$dbname="test";$dumpfname=$dbname."_".date("Y-m-d_H-i-s").".sql";$command="C
  • 标签:PHP 实现 数据库 数据 备份数据库
   经常在有的PHP开源系统中,看到有备份数据库并导出的方法,其实代码不复杂,下面
大概讲解下,以WINDOWS为例子,两类方法,一个是目录文件夹要有执行脚本权限的,
一个个是没有权限的,代码如下:

一)
  
<?php 
  
$username = "root";  
$password = "";  
$hostname = "localhost";  
$dbname   = "test"; 
  

$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(); 
} 
  
// read zip file and send it to standard output 
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; 
} 
?> 



方法2 文件夹没相关权限

<?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(); 
  

//不ZIP了
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();]]> 
?>


  
发表评论
用户名: 匿名