加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php备份数据库脚本的几个案例

发布时间:2023-08-21 13:36:07 所属栏目:PHP教程 来源:
导读:利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考.

例子,代码如下:

<?php
// 备份数据库
$
利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考.

例子,代码如下:

<?php  
// 备份数据库 
$host = "localhost"; 
$user = "root"; //数据库账号 
$password = ""; //数据库密码 
$dbname = "mysql"; //数据库名称 
// 这里的账号、密码、名称都是从页面传过来的 
if (!mysql_connect($host, $user, $password)) // 连接mysql数据库 
    { 
        echo '数据库连接失败,请核对后再试'; 
    exit; 
}  
if (!mysql_select_db($dbname)) // 是否存在该数据库 
    { 
        echo '不存在数据库:' . $dbname . ',请核对后再试'; 
    exit; 
}  
mysql_query("set names 'utf8'"); 
$mysql = "set charset utf8;\r\n"; 
$q1 = mysql_query("show tables"); 
while ($t = mysql_fetch_array($q1)) 

    $table = $t[0]; 
    $q2 = mysql_query("show create table `$table`"); 
    $sql = mysql_fetch_array($q2); 
    $mysql .= $sql['Create Table'] . ";\r\n"; 
    $q3 = mysql_query("select * from `$table`"); 
    while ($data = mysql_fetch_assoc($q3)) 
    { 
        $keys = array_keys($data); 
        $keys = array_map('addslashes', $keys); 
        $keys = join('`,`', $keys); 
        $keys = "`" . $keys . "`"; 
        $vals = array_values($data); 
        $vals = array_map('addslashes', $vals); 
        $vals = join("','", $vals); 
        $vals = "'" . $vals . "'"; 
        $mysql .= "insert into `$table`($keys) values($vals);\r\n"; 
    }  
}  
 
$filename = $dbname . date('Ymjgi') . ".sql"; //存放路径,默认存放到项目最外层 
$fp = fopen($filename, 'w'); 
fputs($fp, $mysql); 
fclose($fp); 
echo "数据备份成功"; 
 
?>  
//例子,代码如下: 
#!/usr/bin/php www.Cuoxin.com 
<?php 
header('Content-Type:text/html;charset=utf-8'); 
 
define('BACK_PATH', dirname(__FILE__)); 
 
/** 
为空数组就备份所有数据库 
*/ 
$back_databases = array('learning','wp'); 
 
$mysql_host = 'localhost'; 
 
$mysql_user = 'root'; 
 
$mysql_passwd = 'root'; 
 
if($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)){ 
 
 $databases = array(); 
 
 mysql_select_db('mysql', $conn); 
 
 $query  =mysql_query('show databases',$conn); 
 
 while($row = mysql_fetch_array($query)) 
 { 
  if(emptyempty($row)) continue; 
   
  $database = $row[0]; 
   
  if(!emptyempty($back_databases) && !in_array($database, $back_databases)) continue; 
     
  $sql_dir = BACK_PATH . "/{$database}.sql"; 
    
  $execs = "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} > " . $sql_dir; 
   
  system($execs); 
   
  if(file_exists($sql_dir . '.gz')) { 
     unlink($sql_dir . '.gz'); 
  } 
     
  system('gzip ' . $sql_dir); 
 } 

//例子,代码如下: 
<?php  
$host="##mysql服务器地址##";  
$user="##登录帐号##";  
$password="##登录密码##";  
$dbname="##数据库名##";  
$filename="##备份文件路径##";  
mysql_connect($host,$user,$password);  
mysql_select_db($dbname);  
$mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";  
$mysql.="USE `".$dbname."`;\r\n\r\n";  
$q0=mysql_query("set names utf8");  
$q1=mysql_query("show tables");  
while($t=mysql_fetch_array($q1)){  
  $table=$t[0];  
  $mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";  
  $q2=mysql_query("show create table `$table`");  
  $sql=mysql_fetch_array($q2);  
  $mysql.=$sql['Create Table'].";\r\n\r\n";  
  $q3=mysql_query("select * from `$table`");  
  while($data=mysql_fetch_assoc($q3)){  
    $keys=array_keys($data);  
    $keys=array_map('addslashes',$keys);  
    $keys=join('`,`',$keys);  
    $keys="`".$keys."`";  
    $vals=array_values($data);  
    $vals=array_map('addslashes',$vals);  
    $vals=join("','",$vals);  
    $vals="'".$vals."'";  
    $mysql.="insert into `$table`($keys) values($vals);\r\n";  
  }  
  $mysql.="\r\n";  
}  
$fp = fopen($filename,'wb');  
fputs($fp,$mysql);  
fclose($fp);  
include_once('lib/pclzip.lib.php');  
$archive = new PclZip($filename.'.zip');  
$v_list = $archive->create($filename);  
if ($v_list == 0) {  
   die("Error : ".$archive->errorInfo(true));  
}  
if(file_exists($filename)){  
   unlink($filename);  
}  
echo "Mysql's backup successfully to ".$filename.".zip";  
?>  
Zip打包备份代码,几乎就是全抄demo,太方便了,代码如下:

<?PHP  
include_once('lib/pclzip.lib.php');  
$src="##源路径##";  
$dest="##目标zip路径##";  
$archive = new PclZip($dest);  
$v_list = $archive->create($src);  
if ($v_list == 0) {  
   die("Error : ".$archive->errorInfo(true));  
}else{  
     print("Success");  
}  
?> 
pclzip.lib.php这个压缩包文件大家百度去下载这里未提供.

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章