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

作者:袖梨 2022-06-24

例子。

 

 代码如下 复制代码
// 备份数据库
$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.111com.net
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(empty($row)) continue;
  
  $database = $row[0];
  
  if(!empty($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);
 }
}

例子

 代码如下 复制代码
$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,太方便了:

 代码如下 复制代码

 

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这个压缩包文件大家百度去下载这里未提供。

相关文章

精彩推荐