转自: http://www.2ky.cn/h/8/4687.html
< ?php $host="localhost";
$user="root";
$password="";
$dbname="";
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql= "set charset utf8;rn";
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query("show create table `$table`");
$sql=mysql_fetch_array($q2);
$mysql.=$sql['Create Table'].";rnrn";
$q3=mysql_query("select * from `$table`");
while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insert into `$table`($keys) values($vals);rn";
}
$mysql.="rn";
}
$filename=date('Ymj').".sql";
$fp = fopen($filename,'w');
fputs($fp,$mysql);
fclose($fp);
echo "数据备份成功,生成备份文件".$filename.""; ? >
我在网上找了个数据库备份、恢复的php类和调用这个类的数据库备份、恢复的两个php文件,做了一些改动,放这里分享: 附件1:database-backup.rar
目前存在的问题是,如果数据恢复时间超过60秒,它就说超时,就会断掉连接。我目前按75K分卷手动一个一个通过恢复界面恢复才不丢数据,所以,“革命尚未成功,同志仍需努力”。