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抓取https的内容的代码
Apr 06 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
Web程序工作原理详解
Dec 25 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 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图像处理类代码分享
2012/01/19 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP常用的小程序代码段
2015/11/14 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
python encode和decode的妙用
2009/09/02 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
使用python 3实现发送邮件功能
2018/06/15 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
法学毕业生自我鉴定
2013/11/08 职场文书
财务简历的自我评价
2014/03/05 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
研发工程师岗位职责
2014/04/28 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
自查自纠整改报告
2014/11/06 职场文书
2015选调生工作总结
2015/07/24 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
公证书
2019/04/17 职场文书
工作建议书范文
2019/07/08 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL