温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 利用php怎么对数据库中的表进行备份

利用php怎么对数据库中的表进行备份

发布时间:2020-12-23 16:42:27 来源:亿速云 阅读:134 作者:Leah 栏目: 开发技术

这篇文章将为大家详细讲解有关利用php怎么对数据库中的表进行备份,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、前言

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

例如:

1、使用mysqldump函数

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

dbname参数表示数据库的名称

table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

基本使用:

利用php怎么对数据库中的表进行备份

2、管理工具

利用php怎么对数据库中的表进行备份

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

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

2、相关函数介绍

2.1 、fopen

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

利用php怎么对数据库中的表进行备份

2.2、array_keys

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

利用php怎么对数据库中的表进行备份

2.3、array_values

利用php怎么对数据库中的表进行备份

2.4、implode

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

利用php怎么对数据库中的表进行备份

2.5、substr

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

利用php怎么对数据库中的表进行备份

2.6、fwrite

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

利用php怎么对数据库中的表进行备份

3、实现思路

利用php怎么对数据库中的表进行备份

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."',";
			}
			//以上的处理只是对应sql的写法

			$valueStr = substr($valueStr,0,strlen($valueStr)-1); //取出最后一个逗号
			$sql = "insert into `{$tableName}`({$keyStr}) values({$valueStr})";
			fwrite($myfile, $sql.";\r\n\r\n");
			
		}
		echo "正在备份表{$tableName}数据完成<br/>";
		echo "<br/><hr/>";
	}
	fclose($myfile);
}

5、结语

备份数据库的主要过程:

切换到对应的数据库;

使用show create table tableName,获得表结构,写到文件中;

然后查询所有的表数据,循环生成相对应sql语句,写到文件中;

试运行生成的sql文件;

关于利用php怎么对数据库中的表进行备份就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节
推荐阅读:
  1. 利用PHP怎么对链表进行打印
  2. 利用php怎么对mysqli数据库进行操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
  • 上一篇新闻:
    Asp.net中的json数据怎么利用easyui返回
  • 下一篇新闻:
    使用PHP怎么实现一个汉字验证码功能

猜你喜欢

  • nginx下载文件的方法是什么
  • db2怎么将多条数据合并成一条
  • python怎么打开指定文件夹添加内容
  • java中user.dir如何传参数
  • C语言TCP网络编程环境怎么搭建
  • php file函数的作用是什么
  • docker怎么配置文件默认目录
  • python中怎么实现do while循环语句
  • mysql中to_number的用法是什么
  • nginx怎么配置静态资源文件夹
最新资讯
  • 在Spring Security中什么是CSRF攻击如何防御
  • 如何在Spring MVC应用中使用WebSockets进行实时通信
  • 解释Spring框架中的`@Profile`注解及其用途
  • Spring Boot中的Environment抽象是如何工作的
  • 在Spring Data中如何自定义存储库接口以添加自定义方法
  • Spring Security框架中的权限继承是如何工作的
  • 如何在Spring Boot应用中使用Lombok库简化代码
  • Spring Boot应用的启动流程是怎样的
  • 如何在Spring MVC中通过RedirectAttributes传递重定向后的数据
  • Spring Cloud Sleuth是如何与Zipkin集成来实现分布式追踪的
相关推荐
  • 利用PHP怎么对链式进行操作
  • 利用php怎么对redis中的sort进行排序
  • 利用php怎么对mysql中的查询进行优化
  • 利用php怎么对mysql备份恢复进行分卷处理
  • 利用php怎么对MySQL数据库进行备份与还原
  • 使用php怎么对两表进行合并
  • 利用PHP怎么对货币进行换算
  • 利用PHP怎么对MYSQL数据进行备份
  • 利用php怎么对数据库表的前缀进行更改
  • 利用PHP怎么对汉字进行转码

相关标签

phpcms php编程 php-fpm php-fpm.conf phpstorm phpmyadmin php-redis php设计模式 php分页类 php curl php版本 php7连接 php数组函数 php学习笔记 phpquery php 7.4 php魔术方法 php异步执行 phpcustom phpems
AI

深圳SEO优化公司宁德seo优化价格梅州网站推广工具多少钱池州网站排名优化推荐黔东南网站优化排名林芝优秀网站设计价格丹竹头网站推广方案推荐泉州模板推广黔东南关键词按天收费哪家好重庆企业网站建设梧州外贸网站制作哪家好海北百姓网标王推广价格阜新建设网站公司永新外贸网站建设价格北海百度爱采购价格桂林营销网站哪家好包头网站搭建报价许昌推广网站价格乐山网站优化排名推荐内江SEO按天收费推荐汕头百度标王报价赣州网站定制哪家好盐田模板推广报价茂名网站优化软件报价云浮企业网站设计价格忻州SEO按天扣费哪家好临夏百度网站优化哪家好吉林网站制作设计价格天津推广网站哪家好襄阳模板推广推荐阳泉网站优化按天扣费多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化