php MYSQL 数据备份类


Posted in PHP onJune 19, 2009

功能上有: ­
require_once("backdata.class.php");
$link = @mysql_connect("localhost","数据库名","密码") or die ('Could not connect to server.');
mysql_query("use cms",$link);
mysql_query("set names utf8",$link);
$dbbck=new backupData($link);//实例化它,只要一个链接标识就行了
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
$dbbck->backupTables("cms","./",array('*'));
­
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user'));
­
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
­
$dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//注解:$dbbck->backupTables("参1","参2",array());中,
参1为:数据库名,
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表
ok...
­
以下为代码:

<?php 
/* 
* 
*简单的一个备份数据类 
*author FC 
* 
*/ 
class backupData{ 
private $mysql_link;//链接标识 
private $dbName;//数据库名 
private $dataDir; //数据所要存放的目录 
private $tableNames;//表名 
public function __construct($mysql_link){ 
­ 
$this->mysql_link = $mysql_link; 
} 
­ 
public function backupTables($dbName,$dataDir,$tableNames){//开始备份 
­ 
$this->dbName = $dbName; 
$this->dataDir = $dataDir; 
$this->tableNames = $tableNames; 
$tables=$this->delarray($this->tableNames); 
$sqls=''; 
foreach($tables as $tablename){ 
if($tablename==''){//表不存在时 
continue; 
} 
//************************以下是形成SQL的前半部分************** 
//如果存在表,就先删除 
$sqls .= "DROP TABLE IF EXISTS $tablename;\n"; 
//读取表结构 
$rs = mysql_query("SHOW CREATE TABLE $tablename",$this->mysql_link); 
$row=mysql_fetch_row($rs); 
//获得表结构组成SQL 
$sqls.=$row['1'].";\n\n"; 
unset($rs); 
unset($row); 
//************************以下是形成SQL的后半部分************** 
//查寻出表中的所有数据 
$rs=mysql_query("select * from $tablename",$this->mysql_link); 
//表的字段个数 
$field=mysql_num_fields($rs); 
//形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');" 
while($rows=mysql_fetch_row($rs)){ 
$comma='';//逗号 
$sqls.="INSERT INTO `$tablename` VALUES("; 
for($i=0;$i<$field;$i++){ 
$sqls.=$comma."'".$rows[$i]."'"; 
$comma=','; 
} 
$sqls.=");\n\n\n"; 
} 
} 
$backfilepath=$this->dataDir.date("Ymdhis",time()).'.sql'; 
//写入文件 
$filehandle = fopen($backfilepath, "w"); 
fwrite($filehandle, $sqls); 
fclose($filehandle); 
} 
­ 
private function delarray($array){//处理传入进来的数组 
foreach($array as $tables){ 
if($tables=='*'){//所有的表(获得表名时不能按常规方式来组成一个数组) 
$newtables=mysql_list_tables($this->dbName,$this->mysql_link); 
$tableList = array(); 
for ($i = 0; $i < mysql_numrows($newtables); $i++){ 
array_push($tableList,mysql_tablename($newtables, $i)); 
} 
$tableList=$tableList; 
}else{ 
$tableList=$array; 
break; 
} 
} 
return $tableList; 
} 
}
PHP 相关文章推荐
PHP chmod 函数与批量修改文件目录权限
May 10 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
ThinkPHP视图查询详解
Jun 30 PHP
php实现的mongodb操作类
May 28 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
Jul 01 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP实现时间日期友好显示实现代码
Sep 08 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
PHP 程序员也要学会使用“异常”
Jun 16 #PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 #PHP
两个强悍的php 图像处理类1
Jun 15 #PHP
PHP写MySQL数据 实现代码
Jun 15 #PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 #PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 #PHP
PHP 定界符 使用技巧
Jun 14 #PHP
You might like
谈谈PHP语法(2)
2006/10/09 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
党员学习十八大感想
2014/01/17 职场文书
家长对孩子的感言
2014/03/10 职场文书
小学二年级学生评语
2014/04/21 职场文书
护理专科学生自荐书
2014/07/05 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
师德师风个人整改措施
2014/10/27 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
奖励申请报告范文
2015/05/15 职场文书
个人欠条范本
2015/07/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
搭建Yolov5服务器
2022/04/30 Servers