PHP备份MySQL数据库

PHP备份MySQL数据库

代码如下:


<?php

// 数据库信息
$dbhost = 'localhost';
$dbuser = 'root';
$dbpwd = '';
$dbname = 'wordpress';

// 连接数据库
$con = mysql_connect($dbhost, $dbuser, $dbpwd) or die(mysql_error());
mysql_set_charset('utf8');
mysql_select_db($dbname);

// 查询数据库中所有的表
$tables = array();
$sql = "show tables";
$query = mysql_query($sql);
while($f = mysql_fetch_row($query)){
 $tables[] = $f[0];
}

// 导出文件的头部信息
$info = '-- mogublog SQL Dump
-- version 0.1
-- http://www.mogublog.net
--
-- 主机: '.$_SERVER['SERVER_NAME'].'
-- 生成日期: '.date('Y 年 m 月 d 日 H:i', time()).'
-- 服务器版本: '.mysql_get_server_info().'
-- PHP 版本: '.phpversion().'

--
-- 数据库: `'.$dbname.'`
--

-- --------------------------------------------------------

';

// 循环写入数据表结构和数据

$handle = fopen($dbname.'.sql', 'w+');
fwrite($handle, $info);

foreach($tables as $table){
 $sql = "show create table ".$table;
 $query = mysql_query($sql);
 $f = mysql_fetch_assoc($query);
 $sql = "select * from ".$table;
 $query = mysql_query($sql);
 $create_table = "--n-- 表的结构 `".$table."`n--nn";
 $insert_sql = "n--n-- 转存表中的数据 `".$table."`n--nn";
 while($d = mysql_fetch_assoc($query)){
 $insert_sql .= "INSERT INTO `".$table."` VALUES (";
 $values = array();
 foreach ($d as $value) {
 $values[] = "'" . mysql_real_escape_string($value) . "'";
 }
 $insert_sql .= implode(', ', $values) . ");n";
 }
 fwrite($handle, $create_table.$f['Create Table'].";n".$insert_sql."n");
}

fclose($handle);

## 结束 ##

发表评论