袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

php备份还原mysql数据库

浏览量:172

what:

why:

how:

//数据库地址
define(\DB_HOST\, \\);
//数据库用户名
define(\DB_USER\, \\);
//数据库密码
define(\DB_PASSWORD\,\\);
//数据库名
define(\DB_NAME\, \\);
//数据库表前缀
define(\DB_PRE\, \\);
define(\DB_PCONNECT\, 0);
//数据库编码
define(\DB_CHARSET\, \utf8\);
//备份或导入的sql文件
define(\DB_BACK\, \back.sql\);

include(\mysql.class.php\);
$mysql=new mysql(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME,DB_CHARSET,DB_PCONNECT);

$act = @$_GET[\act\];
if($act==\back\){
	db_back();
}elseif($act==\import\){
	db_import();
}


function db_back(){
	$rel2=$GLOBALS[\mysql\]->fetch_asc(\SHOW TABLE STATUS FROM \.DB_NAME);
	$db=array();
	foreach($rel2 as $key=>$value){
		if(substr($value[\Name\],0,strlen(DB_PRE))==DB_PRE){
			$db[]=$value[\Name\];
		}
	}
	$sql="";
	foreach($db as $k=>$v){
		$rel=$GLOBALS[\mysql\]->fetch_asc(\SHOW CREATE TABLE \.$v);
		$sql.=" TABLE IF EXISTS `".$v."`;n";
		$sql.=$rel[0][\Create Table\].";n";
		$record=$GLOBALS[\mysql\]->fetch_asc("  from ".$v);
		if(!empty($record)){
			$=array();
			foreach($record as $key=>$value){
				foreach($value as $r_k=>$r_v){
					$[$r_k]="\".mysql_real_escape_string($r_v)."\";
				}
				$sql.="  `".$v."` VALUES(".implode(\,\,$).");n";
			}
		}
	}
	if(!@file_put_contents(DB_BACK,$sql)){
		echo \备份失败,请检查文件夹是否有足够的权限\;
	}
	echo "备份成功,备份文件为".DB_BACK;
}


function db_import(){
	$data=@file_get_contents(DB_BACK);
	$data=explode(";n",trim($data));
	if(!empty($data)){
		foreach($data as $k=>$v){
			$GLOBALS[\mysql\]->query($v);
		}
	}
	echo "数据还原成功";
}




//数据库连接类
class mysql
{
var $link;
var $db_host;
var $db_user;
var $db_password;
var $db;
var $db_prefix;
var $db_pc;
var $parentid;
var $twoCateid;
function mysql($db_host,$db_user,$db_password,$db,$db_charset,$pc_connect){
$this->db_host=$db_host;
$this->db_user=$db_user;
$this->db_password=$db_password;
$this->db=$db;
$this->db_charset=$db_charset;
$this->db_pc=$pc_connect;
$this->open_link();
$this->sl_db();
}
function open_link(){
$this->link=($this->db_pc)?@mysql_pconnect($this->db_host,$this->db_user,$this->db_password):@mysql_connect($this->db_host,$this->db_user,$this->db_password);
if(!$this->link){
echo "数据库连接错误".mysql_error();
}
}
function sl_db(){
if(!@mysql__db($this->db,$this->link)){
echo "数据库".$this->db."不存在";
}
@mysql_unbuffered_query("set names {$this->db_charset}");
}
function query($sql){
if(!$res=@mysql_query($sql,$this->link)){
echo "操作数据库失败".mysql_error()."<br>sql:{$sql}";
}
return $res;
}
function fetch_asc($sql){
$result=$this->query($sql);
$arr=array();
while($rows=mysql_fetch_assoc($result)){
$arr[]=$rows;
}
mysql_free_result($result);
return $arr;
}
}



打赏