1、前言

mysql数据库的备份方式有很多;

例如:

1、使用mysqldump函数

mysqldump -u username -p dbname table1 table2 ...  > BackupName.sql

  1. dbname参数表示数据库的名称
  2. table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
  3. BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

基本使用:

2、管理工具

备份数据库的方法很多,上面两种比较常见

而本次主要讲解如何通过php函数来自动备份数据库

2、相关函数介绍

2.1 、fopen

详情参考:http://www.w3school.com.cn/php/func_filesystem_fopen.asp

2.2、array_keys

详情参考:http://www.w3school.com.cn/php/func_array_keys.asp

2.3、array_values

2.4、implode

详情参考:http://www.w3school.com.cn/php/func_string_implode.asp

2.5、substr

详情参考:http://www.w3school.com.cn/php/func_string_substr.asp

2.6、fwrite

详情参考:https://www.w3cschool.cn/php/func-filesystem-fwrite.html

3、实现思路

4、代码构成

/*** [copyDb description]  备份数据库* @param  [type] $dbname   [description]  数据库名* @param  [type] $fileName [description]  存储的文件名* @return [type]           [description]*/
public function copyDb($dbname, $fileName){ $myfile = fopen($fileName, "w") or die("Unable to open file!");//打开存储文件 $this->link->query("use {$dbname}");//切换数据库 $this->changeDb($dbname); $tables = $this->link->query('show tables');//获取当期数据库所有表名称 while($re = $tables->fetch(PDO::FETCH_ASSOC)){ //var_dump($re);//查看数组构成 $tableName = $re['Tables_in_'.$dbname];//构成特定的下标 $sql = "show create table {$tableName};"; $tableSql = $this->link->query($sql); fwrite($myfile, "DROP TABLE IF EXISTS `{$tableName}`;\r\n");//加入默认删除表的遇见 //下面备份表结构,这个循环之执行一次 while($re = $tableSql->fetch(PDO::FETCH_ASSOC)){ // echo "<pre>"; // var_dump($re); // echo "</pre>"; echo "正在备份表{$re['Table']}结构<br/>"; fwrite($myfile, $re['Create Table'].";\r\n\r\n"); echo "正在备份表{$re['Table']}结构完成<br/>"; } //下面备份表数据 echo "正在备份表{$tableName}数据<br/>"; $sql = "select * from {$tableName};"; $valueSql = $this->link->query($sql); while($re = $valueSql->fetch(PDO::FETCH_ASSOC)){ $keyArr = array_keys($re);//获得对应的键值 $valueArr = array_values($re);//获得对应的值 $keyStr = ''; foreach ($keyArr as $key => $value) { $keyStr .= "`".$value."`,"; } $keyStr = substr($keyStr,0,strlen($keyStr)-1); //取出最后一个逗号 $valueStr = ''; // var_dump($valueArr); foreach ($valueArr as $key => $value) { $valueStr .= "'".$value

转载于:https://www.cnblogs.com/gongchixin/articles/7248562.html

如何使用PHP自动备份数据库相关推荐

  1. windows10 oracle自动备份,Windows系统下oracle 自动备份数据库

    Windows系统下oracle 自动备份数据库 1.创建批处理文件(.bat) 2.建立windows 定时任务 2.1创建任务 2.2 常规处 ->填写任务名称 2.3触发器 2.4 操作 ...

  2. sqlserver在linux数据备份,SQLServer数据库之sqlserver for linux自动备份数据库脚本

    本文主要向大家介绍了SQLServer数据库之sqlserver for linux自动备份数据库脚本,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 不多说直接上脚本 # ...

  3. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  4. 如何实现php自动备份数据库,使用php自动备份数据库表的实现方法

    1.前言 mysql数据库的备份方式有很多: 例如: 1.使用mysqldump函数 mysqldump -u username -p dbname table1 table2 ... > Ba ...

  5. php如何取消bak自动备份_教你如何进行异地自动备份数据库

    之前有给大家介绍如何自动备份清理数据库文件了,如果还没看过的可以点下面链接,先了解如何自动备份. 能够自动化的任务,为何要手动?教你如何自动备份数据库 有小伙伴提出如何进行异地备份的问题,今天我们就来 ...

  6. Shell脚本自动备份数据库

    需求:自动备份数据库 1.编写脚本 # mkdir -p /data/scripts # vim /data/scripts/auto_backup_mysql.sh #!/bin/bash # Th ...

  7. linux删除mysql临时文件_linux下mysql自动备份数据库与自动删除临时文件_MySQL

    bitsCN.com linux下mysql自动备份数据库与自动删除临时文件 一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表:crontab -l然后新建:crontab - ...

  8. linux mysql 临时文件_linux下mysql自动备份数据库与自动删除临时文件

    一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表: crontab -l 然后新建: crontab -e 添加一行: 00 03 * * * rm -rf /www/cmst ...

  9. MSSQL Express版本自动备份数据库

    由于Express版本的数据库没有自动备份数据库的功能,所以需要自己搭建好备份功能 一.具体原理: 1.利用SQL备份命令:Backup Database 2.使用sqlcmd执行备份命令 3.使用系 ...

最新文章

  1. 美国AI博士指出,自学Python到底能做什么
  2. [转]浅谈OCR之Tesseract
  3. python setup脚本编写
  4. vb计算机水平考试笔试,2014计算机考试二级VB笔试答题技巧汇总
  5. VTK:平行坐标用法实战
  6. 纯jsp实现评论功能_自己实现的java手写tomcat
  7. Linux如何访问mmio空间,一文读懂Linux下如何访问I/O端口和I/O内存
  8. leetcode674. 最长连续递增序列
  9. linux dump_stack
  10. JerryScript:物联网开发者的得力工具
  11. 线上安全大会还能这么玩 ISC 2020首创“3D立体云展馆”
  12. python判断一个数是不是完全平方数
  13. Linux将字符串转化为float,C语言中如何将字符串转换成float和double类型
  14. 浅析引用类型和基本类型的内存比较
  15. android adb驱动官方下载,adb驱动下载
  16. unity xml反序列化为数据类
  17. 自制简单CUP第一篇(异或门)
  18. qnx slm7.1(程序员开发手册-翻译)
  19. 程序员辞职回老家山洞写代码,二年敲了 45 万行!
  20. 让瓶子里的小人跟你互动,它是怎么做到的?

热门文章

  1. Destination Host Unreachable问题记录
  2. php tp 微信支付,PHP实现的微信APP支付功能示例【基于TP5框架】
  3. 修改Static控件的字体颜色
  4. HDU 2050 折线分割平面
  5. java中怎么找类的路径_Java中获取类加载路径和项目根路径的5种方法
  6. 顶层const和底层const的区别
  7. umask详解、cwd简介
  8. fgets函数及其用法,C语言fgets函数详解
  9. vector中的圆括号和花括号
  10. rpm方式安装mysql-5.7.11