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,可 ...
随机推荐
- 一 VC2008环境中ICE的配置
VC2008环境中ICE的配置 ICE 3.4.0的下载页面 http://www.zeroc.com/download_3_4_0.html 环境变量配置 1.Ice-3.4.0安装到c:\Ice ...
- MyEclipse通过JDBC连接MySQL数据库基本介绍
转载自:http://www.jb51.net/article/31876.htm 1.前提是MyEclipse已经能正常开发Java工程 2.安装MySQL 个人使用的是版本是 mysql-5.0. ...
- OC基础17:归档
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.归档即是用某种格式把一个或多个对象保存 ...
- linux网络编程--跳水send和recv
要了解一个概念:所有的TCP socket在内核具有发送缓冲器和接收缓冲器.TCP除了全双工操作模式TCP滑模取决于这两个单独buffer和这个buffer填充状态. 接收缓冲器数据缓存入内核.应用进 ...
- UBUNTU系统常用基本命令
1.系统基本信息查询查看内核#uname -a 查看Ubuntu版本#cat /etc/issue 查看内核加载的模块#lsmod 查看PCI设备#lspci 查看USB设备#lsusb 查看网卡状态 ...
- bootstrap使用中遇到的问题(二)
1.ie8不支持carousel组件, 解决方法:将jquery换为jquery1版本,具体原因不清楚~~~~~ 2.ie8不支持background-color:rgba(); 解决方法:这样写代码 ...
- C#获取本机IP方法,获取本机局域网IP地址方法
1. private void GetIP() { string hostName = Dns.GetHostName();//本机名 //System.Net.IPAddress[] address ...
- Lua编程入门-学习笔记2
第6章 深入函数 函数是一种“第一类值(First-Class Value)”,他们具有特定的词法域(lexical scoping) 将表达式“function(x) <body> en ...
- Fragment之一:Fragment入门
参考自张泽华视频 Fragment是自Android3.0后引入的特性,主要用于在不同的屏幕尺寸中展现不同的内容. Fragment必须被嵌入Activity中使用,总是作为Activity的组成部分 ...
- struts2开发经验小结(method="{1}"等)
这里的{1}表示接收前面action里通过通配符传来的值,例如你配置的是<action name="*Crud" class="example.Crud" ...