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'); ?>
以上所述就是本文的全部内容了,希望大家能够喜欢。