Home  >  Article  >  Backend Development  >  php mysql php MYSQL data backup class

php mysql php MYSQL data backup class

WBOY
WBOYOriginal
2016-07-29 08:40:04884browse

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('*'));

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

//Backup 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: where the backup data is to be stored Location (i.e. directory address)
The third one is: those tables you want to save
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; //Data to be stored directory
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==''){//When the table does not exist
continue;
}
//* *************************The following is the first half of the SQL**************
//If the table exists , just 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**************
/ /Search for all the data in the table
$rs=mysql_query("select * from $tablename",$this->mysql_link);
//Number of fields in the table
$field=mysql_num_fields($rs);
/ /Form this kind of 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 the incoming array
foreach($array as $tables){
if($tables=='*'){//All tables (get The table name cannot be formed into 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;
}
}

The above introduces the php mysql php MYSQL data backup class, including the content of php mysql. I hope it will be helpful to friends who are interested in PHP tutorials.

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