Home >Backend Development >PHP Tutorial >php MYSQL data backup class_PHP tutorial

php MYSQL data backup class_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:46:12917browse

Functionally:
require_once("backdata.class.php");
$link = @mysql_connect("localhost","database name","password") or die ('Could not connect to server. ');
mysql_query("use cms",$link);
mysql_query("set names utf8",$link);
$dbbck=new backupData($link);//instantiate it , just a link identifier is enough
//When backing up data, if you want to back up all tables in a database, you can write like this:
$dbbck->backupTables("cms","./", array('*'));

//When backing up data, if you want to back up only one table in a database, you can write like this:
$dbbck->backupTables("cms" ,"./",array('user'));

//When backing up data, if you want to back up multiple tables in a database, you can write like this:

$ dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//Note: $dbbck->backupTables("parameter 1", "Parameter 2", array());,
Parameter 1 is: database name,
Parameter 2 is: the location where the backup data is to be stored (i.e. directory address)
The third one is: you want Save those tables
ok...

The following is the code:

Copy the code The code is as follows:

/*
*
*A simple backup data class
*author FC
*
*/
class backupData{
private $mysql_link;//Link identification
private $dbName;//Database name
private $dataDir; //Directory where the data is to be stored
private $tableNames;//Table name
public function __construct( $mysql_link){

$this->mysql_link = $mysql_link;
}

public function backupTables($dbName,$dataDir,$tableNames){//Start backup

$this->dbName = $dbName;
$this->dataDir = $dataDir;
$this->tableNames = $tableNames;
$tables=$this-> ;delarray($this->tableNames);
$sqls='';
foreach($tables as $tablename){
if($tablename==''){//The table does not exist When
continue;
}
//**********************The following is the first half of the SQL**** **********
//If the table exists, delete it first
$sqls .= "DROP TABLE IF EXISTS $tablename;n";
//Read the table structure
$rs = mysql_query("SHOW CREATE TABLE $tablename",$this->mysql_link);
$row=mysql_fetch_row($rs);
//Get the table structure to form SQL
$sqls .=$row['1'].";nn";
unset($rs);
unset($row);
//************ ************The following is the second half of the SQL**************
//Find all the data in the table
$ rs=mysql_query("select * from $tablename",$this->mysql_link);
//The number of fields in the table
$field=mysql_num_fields($rs);
//Form this SQL statement: "INSERT INTO `groups` VALUES('1499e0ca25988d','Director','','0');"
while($rows=mysql_fetch_row($rs)){
$comma=' ';//Comma
$sqls.="INSERT INTO `$tablename` VALUES(";
for($i=0;$i<$field;$i++){
$sqls.= $comma."'".$rows[$i]."'";
$comma=',';
}
$sqls.=");nnn";
}
}
$backfilepath=$this->dataDir.date("Ymdhis",time()).'.sql';
//Write file
$filehandle = fopen($backfilepath , "w");
fwrite($filehandle, $sqls);
fclose($filehandle);
}

private function delarray($array){//process incoming Incoming array
foreach($array as $tables){
if($tables=='*'){//All tables (when obtaining the table name, you cannot form an array in the usual way)
$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;
}
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/320190.htmlTechArticleThe functions include: require_once("backdata.class.php"); $link = @mysql_connect("localhost" ,"database name","password") or die ('Could not connect to server.'); mysql_query("use cms",$link)...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn