程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用php實現備份數據庫ZIP及導出

用php實現備份數據庫ZIP及導出

編輯:關於PHP編程

經常在有的PHP開源系統中,看到有備份數據庫並導出的方法,其實代碼不復雜,下面
大概講解下,以WINDOWS為例子,兩類方法,一個是目錄文件夾要有執行腳本權限的,
一個個是沒有權限的,代碼如下:

一)
  
Java代碼    
1. <?php   
2.     
3. $username = "root";    
4. $password = "";    
5. $hostname = "localhost";    
6. $dbname   = "test";   
7.     
8.  
9. $dumpfname = $dbname . "_" . date("Y-m-d_H-i-s").".sql";   
10. $command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname   
11.     --user=$username ";   
12. if ($password)    
13.         $command.= "--password=". $password ." ";    
14. $command.= $dbname;   
15. $command.= " > " . $dumpfname;   
16. system($command);   
17.     
18. // zip 數據文件  
19. $zipfname = $dbname . "_" . date("Y-m-d_H-i-s").".zip";   
20. $zip = new ZipArchive();   
21. if($zip->open($zipfname,ZIPARCHIVE::CREATE))    
22. {   
23.    $zip->addFile($dumpfname,$dumpfname);   
24.    $zip->close();   
25. }   
26.     
27. // read zip file and send it to standard output   
28. if (file_exists($zipfname)) {   
29.     header('Content-Description: File Transfer');   
30.     header('Content-Type: application/octet-stream');   
31.     header('Content-Disposition: attachment; filename='.basename($zipfname));   
32.     flush();   
33.     readfile($zipfname);   
34.     exit;   
35. }   
36. ?>  


方法2 文件夾沒相關權限
Java代碼    
1. <?php   
2. ob_start();   
3.     
4. $username = "root";    
5. $password = "";    
6. $hostname = "localhost";    
7. $dbname   = "test";   
8.     
9. $command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname   
10.     --user=$username ";   
11. if ($password)    
12.         $command.= "--password=". $password ." ";    
13. $command.= $dbname;   
14. system($command);   
15.     
16. $dump = ob_get_contents();    
17. ob_end_clean();   
18.     
19.  
20. //不ZIP了  
21. header('Content-Description: File Transfer');   
22. header('Content-Type: application/octet-stream');   
23. header('Content-Disposition: attachment; filename='.basename($dbname . "_" .    
24.     date("Y-m-d_H-i-s").".sql"));   
25. flush();   
26. echo $dump;   
27. exit();]]>   
28. ?> 

 

摘自 jackyrong

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved