手机版

用php自动备份数据库表的实现方法

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

1.前言

mysql数据库的备份方法有很多。

例如:

1.使用mysqldump函数

mysqldump -u username -p dbname表1表2.BackupName.sql

dbname参数指示数据库的名称

表1和表2参数指示要备份的表的名称。如果为空,将备份整个数据库。

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

基本用途:

2.管理工具

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

这一次,我们主要讲解如何通过php函数自动备份数据库

2.相关功能介绍

2.1、fopen

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

2.2、数组_键

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

2.3、数组值

2.4、内爆

详情请参考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描述]备份数据库* @ param[type]$ dbname[description]数据库名称* @ param[type]$ fileName[description]存储文件名* @ return[type][description]*/public函数copyDb($dbname,$ fileName){ $ my file=fopen($ fileName,' w ')或die('无法打开文件!');//打开存储文件$this-link-query('使用{ $ dbname } ');//将数据库切换到$ this-changeDb($ dbname);$ tables=$ this-link-query(' show tables ');//获取当前数据库中所有表的名称while($ re=$ tables-fetch(PDO : fetch _ assoc)){//var _ dump($ re);//检查数组组成$ tablename=$ re ['tables _ in _ '。$ db name];//形成一个特定的下标$ SQL=' show create table { $ table name };';$ Tableql=$ this-link-query($ SQL);fwrite($myfile,' DROP TABLE IF EXISTS ` { $ tableName } `;\ r \ n ');//加入缺省删除表的会议//备份下面的表结构,执行此循环一次while($ re=$ table QL-fetch(PDO :3360 fetch _ assoc)){//echo ' pre ';//var _ dump($ re);//echo '/pre ';Echo '正在备份表{$re['Table']}的结构br/';fwrite($myfile,$re['创建表']。\ r \ n \ r \ n ');Echo '备份表{$re['Table']}的结构已完成br/';}//以下备份表数据回显“备份表{$tableName}数据br/”;$sql=“从{$tableName}中选择*;”;$ ValueSqL=$ this-link-query($ SqL);while($ re=$ value SQL-fetch(PDO : fetch _ ASSOC)){ $ keyArr=array _ keys($ re);//获取对应的键值$ value arr=array _ values($ re);//获取相应的值$ keyStr=foreach($ KeyArr as $ key=$ value){ $ KeyStr。='`'.$值。'`,';}$keyStr=substr($keyStr,0,strlen($ KeyStr)-1);//取出最后一个逗号$ valueStr=//var _ dump($ value arr);foreach($ value arr as $ key=$ value){ $ value str。='''.$value。',';}//以上处理只对应sql的编写:$ valuestr=substr ($ valuestr,0,strlen($ value str)-1);//取出最后一个逗号$ SQL=' insert in `{ $ tablename } `({ $ key str })值({ $ value str })';fwrite($myfile,$sql。\ r \ n \ r \ n ');}echo“备份表{$tableName}的数据已完成br/”;echo ' br/HR/';} fc lose($ my file);}5.结论

备份数据库的主要过程:

切换到相应的数据库;

使用show create table tableName获取表结构并将其写入文件;

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

调试生成的sql文件;

以上使用php自动备份数据库表的实现方法是边肖分享的全部内容,希望能给大家一个参考和支持。

版权声明:用php自动备份数据库表的实现方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐