PHP - Mysql数据库备份类
使用方法:
- require_once("backdata.class.php");
- $link =@mysql_connect("localhost","数据库名","密码")ordie('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为:要存放备份数据的位置(即目录地址)第三个为:你要保存那些表
backdata.class.php
- <?php
- /*
- *
- *一个简单的Mysql备份数据类
- *
- */class backupData{private $mysql_link;//链接标识private $dbName;//数据库名private $dataDir;//数据所要存放的目录private $tableNames;//表名publicfunction __construct($mysql_link){
- $this->mysql_link = $mysql_link;}publicfunction 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);}privatefunction 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 - Mysql数据库备份类
PHP - Mysql数据库备份类的更多相关文章
- Java实现mysql数据库备份
Runtime是一个与JVM运行时环境有关的类,这个类是Singleton的. Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法. ...
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- TODO:MongoDB MySQL数据库备份
TODO:MongoDB MySQL数据库备份 1. MongoDB使用命令备份 mongodump进行整个数据库备份,主要用到的命令参数: -d 要备份的数据库 -o 输出的路径 ./mongodu ...
- Java实现MySQL数据库备份(二)
权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...
- Java实现MySQL数据库备份(一)
下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份: import java.io.BufferedReader; import java.io.File; import jav ...
- MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)
MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...
- MySQL数据库备份命令
原文参考:MySQL数据库备份的命令 - 司南 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql备 ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
随机推荐
- Linux 搭建SVN 服务器
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- The type R is already defined 错误解决办法
今天在导入一个开源项目的时候遇到了The type R is already defined的错误,试过了删除R,clear project都还是报这个错,Google一下之后找到了解决办法在 Pro ...
- 从设计模式说起JAVA I/O流
从设计模式说起JAVA I/O流 之前写过一篇I/O流的入门介绍,直到最近看了设计模式,顺带理下I/O流的设计思路. JAVA类库中的I/O类分成输入和输出两部分,通过继承,任何自InputStrea ...
- linux多线程socket编程一些心得
http://hi.baidu.com/netpet/blog/item/2cc79216d9012b54f2de32b9.html 前段时间将新的web模型办到linux上来,用epoll代替了IO ...
- zedboard--Opencv的移植(十)
今天终于把Opencv的移植搞定了,花了一天的时间,主要是参考了书上和rainysky的博客.下载的2.3.1的版本 第一步肯定是下载opencv的源码包了,在opencv的官网上下载http://s ...
- vector之妙用系列
vector用法: 总结了下大家写的,感觉用着很方便: vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是 ...
- 记录一个原因不明的段错误(libxml2 proc activemq的三角恋)
又碰到了令人头疼的段错误,但是这次,虽然最终找到了出自何处,但是还是不明白究竟是为何. 最后将程序简化,贴上来,希望高人能指点一下. memt.pc: #include <libxml/pars ...
- localStorage和sessionStorage火狐浏览器和其他高级浏览器的区别
例子: <script>window.onload=function(){ var oSetData = document.getElementById('setData'); var o ...
- RTMP流媒体播放过程(转)
http://blog.csdn.net/leixiaohua1020/article/details/11704355 本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程. 注意:RTM ...
- jQuery.on() 函数详解
on() 函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于 ...