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);
## 结束 ##