类别导航:
通知:目前网站正常哦!
你的位置:首页 >> 建站技术 >> wordpress数据库:定期备份邮寄数据库

wordpress数据库:定期备份邮寄数据库

发表日期:2011-10-24 作者:DH分类:建站技术 标签: wordpress
索引[隐藏]

1 序言

最近准备抛弃willian大师的my_visitor,因为占用数据库实在是太大,但是其很好用的三个功能: 1. 简易post_view 2. 定期备份 3. 登录失败提醒 还是很好用的,这里我自己参考他的代码,写了简易的定期备份数据库,希望能给大家帮助

2 方法

将下面的代码保存为dh_backup_db.php
get_col('SHOW TABLES'); // 查询所有表名
		include('dh_backup_db_sql-dump.php'); 

		// 邮寄数据库备份
		global $phpmailer; // 採用 phpmailer 方式
		class_exists('PHPMailer') or require(ABSPATH . WPINC . '/class-phpmailer.php');
		$phpmailer = new PHPMailer();
		$phpmailer->AddAddress( get_option('admin_email') ); // 可改另一個郵箱
		$phpmailer->AddAttachment("$file_dir$filename");
		$phpmailer->Body = '这是由 dhchannel backup_db 功能自动生成的数据库备份.';
		$phpmailer->CharSet = 'UTF-8';
		$phpmailer->ContentType = 'text/plain';
		$phpmailer->FromName = html_entity_decode(get_option('blogname'), ENT_QUOTES);
		$phpmailer->From = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
		$phpmailer->Subject = "数据库备份- $filename";
		; // 寄出
		if($phpmailer->Send())
		{
			echo "糟糕,没有发送出去哦!";
			unlink($file_dir.$filename);
		}
//unlink($file_dir.$filename);
    }
	update_option('dh_backup_db', $now);
}
?>
?>
在functions.php中引用
include("dh_backup_db.php");

3 数据备份操作文件

讲一下文件保存为 dh_backup_db_sql-dump.php,此文件引用willian的my_visitor
get_row("SHOW CREATE TABLE $table");
$buffer.= $row->{'Create Table'}.";\n
# 導出表中的數據 `$table`\n";
sql_dump($fp, $buffer);

$limit_start = 0;
$status = $wpdb->get_row("SHOW TABLE STATUS LIKE '$table'");
$limit = (int)(($max_limit / (($status->Data_length + 1) / ($status->Rows + 1)))); // 以 max_limit 切割長度 (ROWS_PER_SEGMENT)

 do {
   $buffer = '';
   $dbs = $wpdb->get_results("SELECT * FROM $table LIMIT $limit_start, $limit", ARRAY_A);
   if (count($dbs)) {
     $buffer .= "\nINSERT INTO `$table` VALUES";
     foreach ($dbs as $db) {
       foreach ($db as $str) {
         $str = strtr($str, array("'" => "''", "\\" => "\\\\", "\x00" => "\\0", "\x0a" => "\\n", "\x0d" => "\\r", "\x1a" => "\\Z")); // 修改版 mysql_real_escape_string()
         $fild[] = is_numeric($str) ? $str : "'" . $str . "'";
       }
       $fild = implode(", ", $fild);
       $buffer .= "\n($fild),";
       unset($fild);
     }
   $buffer = rtrim($buffer, ',') . ";";
  }
  sql_dump($fp, $buffer);
  $limit_start += $limit;
 } while (count($dbs));

 $buffer = "\n
# `$table` 結束
\n-- " . str_repeat('-', 56);
sql_dump($fp, $buffer);
}

fclose($fp);

 $dump_peak_usage = round(memory_get_peak_usage()/1024/1024, 2);
?>


除非注明,文章均为灯火部落原创,转载请注明出处:wordpress数据库:定期备份邮寄数据库-灯火部落
相关文章:
  • wordpress主题:纯静态文件文章归档
  • wordpress安全:处理垃圾评论(续)-前台管理评论
  • wordpress数据库:表posts清理和整理
  • wordpress主题:添加文章目录
  • 经验总结:丢失的百度收录回来了
  • wordpress主题:非插件post_view
  • ∧回到顶部∧