<?php
require_once("backdata.class.php");
$link = @mysql_connect("localhost","root","123456") or die ('Could not connect to server.');
mysql_query("use student",$link);
mysql_query("set names utf8",$link);
dbbck=newbackupData(link);//实例化它,只要一个链接标识就行了
teblename=_REQUEST['beifen'];
// echo 'sdfas'.$teblename;
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
//$dbbck->backupTables("student","./",array('*'));
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
if($teblename=='totao'){
$dbbck->backupTables("student","data/",array('totaopingfen','secondpingfen'));
}else{
dbbck−>backupTables("student","data/",array(teblename));
}
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
//$dbbck->backupTables("student","./",array('class','kq_xsjbxxb','kq_xsjbxxb'));
?>
<?php
/*
*
*简单的一个Mysql备份数据类
*
*/
class backupData{
private $mysql_link;//链接标识
private $dbName; //数据库名
private $dataDir; //数据所要存放的目录
private $tableNames;//表名
public function __construct($mysql_link){
this−>mysqllink=mysql_link;
}
public function backupTables(dbName,dataDir,$tableNames){//开始备份
this−>dbName=dbName;
this−>dataDir=dataDir;
this−>tableNames=tableNames;
tables=this->delarray($this->tableNames);
$sqls='';
foreach(tablesastablename){
if($tablename==''){//表不存在时
continue;
}
//echo $dbName;
//************************以下是形成SQL的前半部分**************
//如果存在表,就先删除
sqls.="DROPTABLEIFEXISTStablename;n";
//读取表结构
rs=mysqlquery("SHOWCREATETABLEtablename",$this->mysql_link);
row=mysqlfetchrow(rs);
//获得表结构组成SQL
sqls.=row['1'].";nn";
unset($rs);
unset($row);
//************************以下是形成SQL的后半部分**************
//查寻出表中的所有数据
rs=mysqlquery("select∗fromtablename",$this->mysql_link);
//表的字段个数
field=mysqlnumfields(rs);
//形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');"
while(rows=mysqlfetchrow(rs)){
$comma='';//逗号
sqls.="INSERTINTO‘tablename` VALUES(";
for(i=0;i<field;i++){
sqls.=comma."'".rows[i]."'";
$comma=',';
}
$sqls.=");nnn";
}
}
backfilepath=this->dataDir.date("Ymdhis",time()).'.sql';
//echo $backfilepath;
//写入文件
filehandle=fopen(backfilepath, "w");
fwrite(filehandle,sqls);
fclose($filehandle);
echo '数据备份成功';
}
private function delarray($array){
//echo 'BBBBBBBBBBb'; //处理传入进来的数组
foreach(arrayastables){
if($tables=='*'){ //所有的表(获得表名时不能按常规方式来组成一个数组)
newtables=mysqllisttables(this->dbName,$this->mysql_link);
$tableList = array();
for (i=0;i < mysql_numrows(newtables);i++){
array_push(tableList,mysqltablename(newtables, $i));
}
tableList=tableList;
}else{
tableList=array;
break;
}
}
return $tableList;
}
}
require_once("backdata.class.php");
$link = @mysql_connect("localhost","root","123456") or die ('Could not connect to server.');
mysql_query("use student",$link);
mysql_query("set names utf8",$link);
dbbck=newbackupData(link);//实例化它,只要一个链接标识就行了
teblename=_REQUEST['beifen'];
// echo 'sdfas'.$teblename;
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
//$dbbck->backupTables("student","./",array('*'));
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
if($teblename=='totao'){
$dbbck->backupTables("student","data/",array('totaopingfen','secondpingfen'));
}else{
dbbck−>backupTables("student","data/",array(teblename));
}
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
//$dbbck->backupTables("student","./",array('class','kq_xsjbxxb','kq_xsjbxxb'));
?>
<?php
/*
*
*简单的一个Mysql备份数据类
*
*/
class backupData{
private $mysql_link;//链接标识
private $dbName; //数据库名
private $dataDir; //数据所要存放的目录
private $tableNames;//表名
public function __construct($mysql_link){
this−>mysqllink=mysql_link;
}
public function backupTables(dbName,dataDir,$tableNames){//开始备份
this−>dbName=dbName;
this−>dataDir=dataDir;
this−>tableNames=tableNames;
tables=this->delarray($this->tableNames);
$sqls='';
foreach(tablesastablename){
if($tablename==''){//表不存在时
continue;
}
//echo $dbName;
//************************以下是形成SQL的前半部分**************
//如果存在表,就先删除
sqls.="DROPTABLEIFEXISTStablename;n";
//读取表结构
rs=mysqlquery("SHOWCREATETABLEtablename",$this->mysql_link);
row=mysqlfetchrow(rs);
//获得表结构组成SQL
sqls.=row['1'].";nn";
unset($rs);
unset($row);
//************************以下是形成SQL的后半部分**************
//查寻出表中的所有数据
rs=mysqlquery("select∗fromtablename",$this->mysql_link);
//表的字段个数
field=mysqlnumfields(rs);
//形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');"
while(rows=mysqlfetchrow(rs)){
$comma='';//逗号
sqls.="INSERTINTO‘tablename` VALUES(";
for(i=0;i<field;i++){
sqls.=comma."'".rows[i]."'";
$comma=',';
}
$sqls.=");nnn";
}
}
backfilepath=this->dataDir.date("Ymdhis",time()).'.sql';
//echo $backfilepath;
//写入文件
filehandle=fopen(backfilepath, "w");
fwrite(filehandle,sqls);
fclose($filehandle);
echo '数据备份成功';
}
private function delarray($array){
//echo 'BBBBBBBBBBb'; //处理传入进来的数组
foreach(arrayastables){
if($tables=='*'){ //所有的表(获得表名时不能按常规方式来组成一个数组)
newtables=mysqllisttables(this->dbName,$this->mysql_link);
$tableList = array();
for (i=0;i < mysql_numrows(newtables);i++){
array_push(tableList,mysqltablename(newtables, $i));
}
tableList=tableList;
}else{
tableList=array;
break;
}
}
return $tableList;
}
}
?>
本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1109538,如需转载请自行联系原作者