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自动备份数据库表的实现方法是边肖分享的全部内容,希望能给大家一个参考和支持。