您好,欢迎访问一九零五行业门户网

php 备份数据库代码(生成word,excel,json,xml,sql)

本篇文章是对php备份数据库代码(生成word,excel,json,xml,sql)进行了详细的分析介绍,需要的朋友参考下
单表备份
代码:
复制代码 代码如下:
conn=mysql_connect($host,$user,$pass))
die(can't connect to mysql sever);
mysql_select_db($db,$this->conn);
mysql_query(set names 'utf-8');
}
function execute($sql)
{
return mysql_query($sql,$this->conn);
}
function findcount($sql)
{
$result=$this->execute($sql);
return mysql_num_rows($result);
}
function findbysql($sql)
{
$array=array();
$result=mysql_query($sql);
$i=0;
while($row=mysql_fetch_assoc($result))
{
$array[$i]=$row;
$i++;
}
return $array;
}
//$con的几种情况
//空:返回全部记录
//array:eg. array('id'=>'1') 返回id=1的记录
//string :eg. 'id=1' 返回id=1的记录
function toextjson($table,$start=0,$limit=10,$cons=)
{
$sql=$this->generatesql($table,$cons);
$totalnum=$this->findcount($sql);
$result=$this->findbysql($sql. limit .$start. ,.$limit);
$resultnum = count($result);//当前结果数
$str=;
$str.= {;
$str.= 'totalcount':'$totalnum',;
$str.='rows':;
$str.=[;
for($i=0;$i$str.={;
$count=count($result[$i]);
$j=1;
foreach($result[$i] as $key=>$val)
{
if($j{
$str.='.$key.':'.$val.',;
}
elseif($j==$count)
{
$str.='.$key.':'.$val.';
}
$j++;
}
$str.=};
if ($i != $resultnum-1) {
$str.= ,;
}
}
$str.=];
$str.=};
return $str;
}
function generatesql($table,$cons)
{
$sql=;//sql条件
$sql=select * from .$table;
if($cons!=)
{
if(is_array($cons))
{
$k=0;
foreach($cons as $key=>$val)
{
if($k==0)
{
$sql.=where ';
$sql.=$key;
$sql.='=';
$sql.=$val.';
}else
{
$sql.=and ';
$sql.=$key;
$sql.='=';
$sql.=$val.';
}
$k++;
}
}else
{
$sql.= where .$cons;
}
}
return $sql;
}
function toextxml($table,$start=0,$limit=10,$cons=)
{
$sql=$this->generatesql($table,$cons);
$totalnum=$this->findcount($sql);
$result=$this->findbysql($sql. limit .$start. ,.$limit);
$resultnum = count($result);//当前结果数
header(content-type: text/xml);
$xml=\n;
$xml.=\n;
$xml.=\t.$totalnum.\n;
$xml.=\t\n;
for($i=0;$i$xml.=\t\t\n;
foreach($result[$i] as $key=>$val)
$xml.=\t\t\t.$val..$key.>\n;
$xml.=\t\t\n;
}
$xml.=\t\n;
$xml.=\n;
return $xml;
}
//输出word表格
function toword($table,$mapping,$filename)
{
header('content-type: application/doc');
header('content-disposition: attachment; filename='.$filename.'.doc');
echo 'xmlns:w=urn:schemas-microsoft-com:office:word
xmlns=[url=http://www.w3.org/tr/rec-html40][/url]>
'.$filename.'
';
echo'';
if(is_array($mapping))
{
foreach($mapping as $key=>$val)
echo''.$val.' ';
}
echo'
';
$results=$this->findbysql('select * from '.$table);
foreach($results as $result)
{
echo'';
foreach($result as $key=>$val)
echo''.$val.' ';
echo'
';
}
echo'
';
echo'';
echo'';
}
function toexcel($table,$mapping,$filename)
{
header(content-type:application/vnd.ms-excel);
header(content-disposition:filename=.$filename..xls);
echo'xmlns:x=urn:schemas-microsoft-com:office:excel
xmlns=[url=http://www.w3.org/tr/rec-html40][/url]>
';
echo'';
echo'';
if(is_array($mapping))
{
foreach($mapping as $key=>$val)
echo''.$val.' ';
}
echo'
';
$results=$this->findbysql('select * from '.$table);
foreach($results as $result)
{
echo'';
foreach($result as $key=>$val)
echo''.$val.' ';
echo'
';
}
echo'
';
echo'';
echo'';
}
function backup($table)
{
if(is_array ($table))
{
$str=;
foreach($table as $tab)
$str.=$this->get_table_content($tab);
return $str;
}else{
return $this->get_table_content($table);
}
}
function backuptofile($table,$file)
{
header(content-disposition: filename=$file.sql);//所保存的文件名
header(content-type: application/octetstream);
header(pragma: no-cache);
header(expires: 0);
if(is_array ($table))
{
$str=;
foreach($table as $tab)
$str.=$this->get_table_content($tab);
echo $str;
}else{
echo $this->get_table_content($table);
}
}
function restore($table,$file=,$content=)
{
//排除file,香港服务器,香港服务器,content都为空或者都不为空的情况
if(($file==&&$content==)||($file!=&&$content!=))
echo参数错误;
$this->truncate($table);
if($file!=)
{
if($this->restorefromfile($file))
return true;
else
return false;
}
if($content!=)
{
if($this->restorefromcontent($content))
return true;
else
return false;
}
}
//清空表,香港空间,以便恢复数据
function truncate($table)
{
if(is_array ($table))
{
$str=;
foreach($table as $tab)
$this->execute(truncate table $tab);
}else{
$this->execute(truncate table $table);
}
}
function get_table_content($table)
{
$results=$this->findbysql(select * from $table);
$temp = ;
$crlf=
;
foreach($results as $result)
{
/*(;
foreach($result as $key=>$val)
{
$schema_insert .= `.$key.`,;
}
$schema_insert = ereg_replace(,$, , $schema_insert);
$schema_insert .= )
*/
$schema_insert = insert into $table values (;
foreach($result as $key=>$val)
{
if($val != )
$schema_insert .= '.addslashes($val).',;
else
$schema_insert .= null,;
}
$schema_insert = ereg_replace(,$, , $schema_insert);
$schema_insert .= );$crlf;
$temp = $temp.$schema_insert ;
}
return $temp;
}
function restorefromfile($file){
if (false !== ($fp = fopen($file, 'r'))) {
$sql_queries = trim(fread($fp, filesize($file)));
$this->splitmysqlfile($pieces, $sql_queries);
foreach ($pieces as $query) {
if(!$this->execute(trim($query)))
return false;
}
return true;
}
return false;
}
function restorefromcontent($content)
{
$content = trim($content);
$this->splitmysqlfile($pieces, $content);
foreach ($pieces as $query) {
if(!$this->execute(trim($query)))
return false;
}
return true;
}
function splitmysqlfile(&$ret, $sql)
{
$sql= trim($sql);
$sql=split(';',$sql);
$arr=array();
foreach($sql as $sq)
{
if($sq!=);
$arr[]=$sq;
}
$ret=$arr;
return true;
}
}
$db=new db();
// 生成 word
//$map=array('no','name','email','age');
//echo $db->toword('test',$map,'档案');
// 生成 excel
//$map=array('no','name','email','age');
//echo $db->toexcel('test',$map,'档案');
// 生成 xml
//echo $db->toextxml('test',0,20);
// 生成 json
//echo $db->toextjson('test',0,20);
//备份
//echo $db->backuptofile('test','backup');
?>
整表备份
复制代码 代码如下:
其它类似信息

推荐信息