php定时备份数据库,导出sql文件

    xiaoxiao2025-10-13  4

    备份数据除了人为手动导出文件以外还可以定时自动导出,防止数据出现删除遗失等情况,定时自动备份大大节省了人力,也可修改代码用户端自己导出数据,用户端导出也分为sql文件,此操作便于管理员进行后期数据恢复,也可excel导出,此操作方便用户查看

    <?php //无论客户端是否关闭浏览器,下面的代码都将得到执行。 ignore_user_abort(true);set_time_limit(0); //function write_txt(){ ini_set("max_execution_time", "180");//避免数据量过大,导出不全的情况出现。 $host="127.0.0.1";//数据库地址 $dbname="test";//这里配置数据库名 $username="root";//用户名 $passw="";//这里配置密码 $filename=date("Y-m-d_H-i-s")."-".$dbname.".sql";    header("Content-disposition:filename=".$filename);//所保存的文件名    header("Content-type:application/octetstream");    header("Pragma:no-cache");    header("Expires:0"); //备份数据    $i   =   0;    $crlf="\r\n";     global     $dbconn;    $dbconn   =   mysql_connect($host,$username,$passw);//数据库主机,用户名,密码    $db   =   mysql_select_db($dbname,$dbconn); mysql_query("SET NAMES 'utf8'");    $tables =mysql_list_tables($dbname,$dbconn);    $num_tables   =   @mysql_numrows($tables);    print   "-- filename=".$filename;    while($i   <   $num_tables)    {      $table=mysql_tablename($tables,$i);      print   $crlf;   echo   get_table_structure($dbname,   $table,   $crlf).";$crlf$crlf";   //echo   get_table_def($dbname,   $table,   $crlf).";$crlf$crlf";   echo   get_table_content($dbname,   $table,   $crlf);      $i++;   } //} function get_table_structure($db,$table,$crlf) { global   $drop;      $schema_create   =   "";      if(!empty($drop)){ $schema_create   .=   "DROP TABLE IF EXISTS `$table`;$crlf";}     $result   =mysql_db_query($db,   "SHOW CREATE TABLE $table");     $row=mysql_fetch_array($result);     $schema_create   .= $crlf."-- ".$row[0].$crlf;     $schema_create   .= $row[1].$crlf;     Return $schema_create; } //获得表内容 function   get_table_content($db, $table,   $crlf) {           $schema_create   =   "";           $temp   =   "";           $result   =   mysql_db_query($db,   "SELECT   *   FROM   $table");           $i   =   0;           while($row   =   mysql_fetch_row($result))           {                   $schema_insert   =   "INSERT INTO `$table` VALUES   (";                   for($j=0;   $j<mysql_num_fields($result);$j++)                   {                           if(!isset($row[$j]))                                   $schema_insert   .=   " NULL,";                           elseif($row[$j]   !=   "")                                   $schema_insert   .=   " '".addslashes($row[$j])."',";                           else                                   $schema_insert   .=   " '',";                   }                   $schema_insert   =   ereg_replace(",$", "",$schema_insert);                   $schema_insert   .=   ");$crlf";                   $temp   =   $temp.$schema_insert   ;                   $i++;           }           return   $temp; } //usleep适用于php5.0以上,定时 function do_cron(){usleep(1);write_txt();} while(1){do_cron();} ?>

    转载请注明原文地址: https://ju.6miu.com/read-1303125.html
    最新回复(0)