zoukankan      html  css  js  c++  java
  • PHP导出MYSQL数据库并压缩

    PHP可以一键导出MYSQL备份文件,并压缩存放,尽管phpMyAdmin有这功能,不过若你自己开发网站或者是为别人写CMS,你不应该要求别人用你程序的时候再去另外用phpMyAdmin备份MYSQL,这应该是你CMS中的一个功能,那么PHP如何实现一键备份MYSQL数据,这里是指把MYSQL内容全部导出成SQL文件,然后压缩SQL,介绍两种方法如下:

    第一种:

    <?php
    $username = "root";//你的MYSQL用户名
    $password = "";//密码
    $hostname = "localhost";//MYSQL服务器地址
    $dbname   = "cars";//数据库名
    $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();
    }
    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;
    }
    ?>

    上述代码可保存成一个PHP文件,如mysqlbak.php,注意,此文件必须有写权限。为了使用方便,你可以在后台给此文件一个链接,需要导出MYSQL时,你只需点击一下就执行备份导出操作。

    第二种方法:不需要写权限,但不压缩SQL文件,代码如下:

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

    两种方法你可以选用一种,同样可将第二种方法保存成mysqlbak.php文件,在后台给个链接,用着方便。

  • 相关阅读:
    Java中的匿名对象
    Java决策制定
    「干货总结」程序员必知必会的十大排序算法
    阿里开发手册之ArrayList正确操作方式
    Java中this关键字的使用
    Java封装的概念详解
    【C++】数组的最大子数组
    第二章:分治I
    【C++】归并排序
    第一章:算法绪论
  • 原文地址:https://www.cnblogs.com/qingsong/p/5932042.html
Copyright © 2011-2022 走看看