【MySQL】php实现备份数据库

32 篇文章 2 订阅
public function dataBackup(){
        $doc_root=$_SERVER['DOCUMENT_ROOT'];
        $file_path_name=$doc_root.'/sqlbackup';  //保存到的路径
        $name='backup_'.date('YmdHis').".sql";
        if(!file_exists($file_path_name)){
            mkdir($file_path_name,0777);
        }
        $mysqldump_url='G:\phpstudy\PHPTutorial\MySQL\bin\mysqldump.exe';//mysqldump.exe的绝对路径,安装mysql自带的有,可以搜索一下路径
        $host='127.0.0.1';//数据库所在的服务器地址
        $User='root';//数据库用户名
        $Password='root';//数据库密码
        $databaseName='kuer';//数据库名
        $process=$mysqldump_url." -h".$host." -u".$User."  -p".$Password."  ".$databaseName." >".$file_path_name."/".$name;
        $er=system($process);//system()执行外部程序,并且显示输出
        if($er!==false){
            echo json_encode('success!');
        }else{
            echo json_encode('error!');
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PHP可以通过使用命令行工具或者PHP扩展来实现数据库与代码备份。 1. 使用命令行工具 (1)数据库备份 使用 mysqldump 工具可以将 MySQL 数据库导出为SQL脚本文件,从而实现备份。 示例代码: ``` system('mysqldump -u root -p dbname > backup.sql'); ``` 其中,-u指定数据库用户名,-p指定密码,dbname是要备份数据库名称,> 操作符将备份结果输出到 backup.sql 文件中。 (2)代码备份 使用 tar 命令可以将代码文件打包成一个压缩包,从而实现备份。 示例代码: ``` system('tar -zcvf backup.tar.gz /path/to/code'); ``` 其中,-z指定压缩格式为gzip,-c指定创建压缩包,-v指定显示详细信息,-f指定输出文件名,/path/to/code是要备份的代码目录。 2. 使用PHP扩展 使用PHP的扩展包,我们可以更方便地备份数据和代码。以备份MySQL数据为例,可以使用PDO扩展连接数据库,然后使用PDOStatement::fetchAll()方法获取查询结果,最后将结果写入文件中。 示例代码: ``` $pdo = new PDO('mysql:host=localhost;dbname=mydb', 'root', 'password'); $stmt = $pdo->query("SELECT * FROM mytable"); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); $fp = fopen('backup.sql', 'w'); foreach ($result as $row) { fwrite($fp, "INSERT INTO mytable (col1, col2) VALUES ('{$row['col1']}', '{$row['col2']}');"); } fclose($fp); ``` 其中,PDO::FETCH_ASSOC指定查询结果的格式为关联数组,将结果按照SQL语句的格式写入backup.sql文件中。 代码备份也可以使用PHP的ZipArchive扩展来实现。 示例代码: ``` $zip = new ZipArchive(); $zip->open('backup.zip', ZipArchive::CREATE); $files = array('/path/to/file1', '/path/to/file2'); foreach ($files as $file) { $zip->addFile($file); } $zip->close(); ``` 其中,ZipArchive::CREATE指定创建新的压缩包,$files是要备份的文件列表,使用ZipArchive::addFile()方法将文件加入压缩包中,最后使用ZipArchive::close()方法关闭压缩包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下页、再停留

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值