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 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
NT IIS下用ODBC连接数据库
Oct 09 PHP
PHP学习之数组值的操作
Apr 17 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
php中opendir函数用法实例
Nov 15 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python 爬取疫情数据的源码
2020/02/09 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
自主招生推荐信范文
2014/05/10 职场文书
六查六看剖析材料
2014/10/06 职场文书
2015年加油站工作总结
2015/05/13 职场文书
企业安全生产检查制度
2015/08/06 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏