首页 php教程 php手册 php备份数据库脚本的几个例子

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

May 25, 2016 pm 04:38 PM
php备份数据库

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

例子,代码如下:

<?php
// 备份数据库
$host = "localhost";
$user = "root"; //数据库账号
$password = ""; //数据库密码
$dbname = "mysql"; //数据库名称
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($host, $user, $password)) // 连接mysql数据库
{
    echo &#39;数据库连接失败,请核对后再试&#39;;
    exit;
}
if (!mysql_select_db($dbname)) // 是否存在该数据库
{
    echo &#39;不存在数据库:&#39; . $dbname . &#39;,请核对后再试&#39;;
    exit;
}
mysql_query("set names &#39;utf8&#39;");
$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[&#39;Create Table&#39;] . ";\r\n";
    $q3 = mysql_query("select * from `$table`");
    while ($data = mysql_fetch_assoc($q3)) {
        $keys = array_keys($data);
        $keys = array_map(&#39;addslashes&#39;, $keys);
        $keys = join(&#39;`,`&#39;, $keys);
        $keys = "`" . $keys . "`";
        $vals = array_values($data);
        $vals = array_map(&#39;addslashes&#39;, $vals);
        $vals = join("&#39;,&#39;", $vals);
        $vals = "&#39;" . $vals . "&#39;";
        $mysql.= "insert into `$table`($keys) values($vals);\r\n";
    }
}
$filename = $dbname . date(&#39;Ymjgi&#39;) . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, &#39;w&#39;);
fputs($fp, $mysql);
fclose($fp);
echo "数据备份成功";
登录后复制

//例子,代码如下:

//!/usr/bin/php
<?php
header(&#39;Content-Type:text/html;charset=utf-8&#39;);
define(&#39;BACK_PATH&#39;, dirname(__FILE__));
/** 
 为空数组就备份所有数据库
 */
$back_databases = array(
    &#39;learning&#39;,
    &#39;wp&#39;
);
$mysql_host = &#39;localhost&#39;;
$mysql_user = &#39;root&#39;;
$mysql_passwd = &#39;root&#39;;
if ($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)) {
    $databases = array();
    mysql_select_db(&#39;mysql&#39;, $conn);
    $query = mysql_query(&#39;show databases&#39;, $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 . &#39;.gz&#39;)) {
            unlink($sql_dir . &#39;.gz&#39;);
        }
        system(&#39;gzip &#39; . $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[&#39;Create Table&#39;] . ";\r\n\r\n";
    $q3 = mysql_query("select * from `$table`");
    while ($data = mysql_fetch_assoc($q3)) {
        $keys = array_keys($data);
        $keys = array_map(&#39;addslashes&#39;, $keys);
        $keys = join(&#39;`,`&#39;, $keys);
        $keys = "`" . $keys . "`";
        $vals = array_values($data);
        $vals = array_map(&#39;addslashes&#39;, $vals);
        $vals = join("&#39;,&#39;", $vals);
        $vals = "&#39;" . $vals . "&#39;";
        $mysql.= "insert into `$table`($keys) values($vals);\r\n";
    }
    $mysql.= "\r\n";
}
$fp = fopen($filename, &#39;wb&#39;);
fputs($fp, $mysql);
fclose($fp);
include_once (&#39;lib/pclzip.lib.php&#39;);
$archive = new PclZip($filename . &#39;.zip&#39;);
$v_list = $archive->create($filename);
if ($v_list == 0) {
    die("Error : " . $archive->errorInfo(true));
}
if (file_exists($filename)) {
    unlink($filename);
}
echo "Mysql&#39;s backup successfully to " . $filename . ".zip";
?>
登录后复制

Zip打包备份代码, 几乎就是全抄demo, 太方便了, 代码如下 :

<?PHP  
include_once(&#39;lib/pclzip.lib.php&#39;);  
$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这个压缩包文件大家百度去下载这里未提供 . 


文章地址:

转载随意^^请带上本文地址!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24