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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
在线短消息收发的程序,不用数据库
Oct 09 PHP
PHP+MySQL5.0中文乱码解决方法
Nov 20 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
PHP $_FILES函数详解
Mar 09 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
Aug 15 PHP
PHP defined()函数的使用图文详解
Jul 20 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php实现异步数据调用的方法
2015/12/24 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
简单实现php上传文件功能
2017/09/21 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
Python自动抢红包教程详解
2019/06/11 Python
Python selenium的基本使用方法分析
2019/12/21 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
综合内勤岗位职责
2014/04/14 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
体育教师研修感悟
2015/11/18 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
SpringBoot 集成Redis 过程
2021/06/02 Redis
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android