php备份数据库类分享
php备份数据库类分享
<?php
/**
*
*@namephp备份数据库
*@paramstring$DbHost连接主机
*@paramstring$DbUser用户名
*@paramstring$DbPwd连接密码
*@paramstring$DbName要备份的数据库
*@paramstring$saveFileName要保存的文件名,默认文件保存在当前文件夹中,以日期作区分
*@returnNull
*@examplebackupMySqlData('localhost','root','123456','YourDbName');
*
*/
functionbackupMySqlData($DbHost,$DbUser,$DbPwd,$DbName,$saveFileName='')
{
header("Content-type:text/html;charset=utf-8");
error_reporting(0);
set_time_limit(0);
echo'数据备份中,请稍候......<br/>';
$link=mysql_connect($DbHost,$DbUser,$DbPwd)ordie('数据库连接失败:'.mysql_error());
mysql_select_db($DbName)ordie('数据库连接失败:'.mysql_error());
mysql_query('setnamesutf8');
//声明变量
$isDropInfo='';
$insertSQL='';
$row=array();
$tables=array();
$tableStructure=array();
$fileName=($saveFileName?$saveFileName:'MySQL_data_bakeup_').date('YmdHis').'.sql';
//枚举该数据库所有的表
$res=mysql_query("SHOWTABLESFROM$DbName");
while($row=mysql_fetch_row($res)){
$tables[]=$row[0];
}
mysql_free_result($res);
//枚举所有表的创建语句
foreach($tablesas$val){
$res=mysql_query("showcreatetable$val",$link);
$row=mysql_fetch_row($res);
$isDropInfo="DROPTABLEIFEXISTS`".$val."`;\r\n";
$tableStructure=$isDropInfo.$row[1].";\r\n";
file_put_contents($fileName,$tableStructure,FILE_APPEND);
mysql_free_result($res);
}
//枚举所有表的INSERT语句
foreach($tablesas$val){
$res=mysql_query("select*from$val");
//没有数据的表不执行insert
while($row=mysql_fetch_row($res)){
$sqlStr="INSERTINTO`".$val."`VALUES(";
foreach($rowas$v){
$sqlStr.="'$v',";
}
//去掉最后一个逗号
$sqlStr=substr($sqlStr,0,strlen($sqlStr)-1);
$sqlStr.=");\r\n";
file_put_contents($fileName,$sqlStr,FILE_APPEND);
}
mysql_free_result($res);
}
echo'数据备份成功!';
}
//调用此方法
backupMySqlData('localhost','root','123456','YouDbName');
?>
以上所述就是本文的全部内容了,希望大家能够喜欢。