A-A+

php备份mysql的源代码

2014年07月13日 软件开发 暂无评论

作为开发者,数据的备份至关重要,尤其是数据库的备份,在我们对mysql数据库的备份中,往往会使用在线工具phpmyadmin进行备份,或者使用远程客户端工具Navicat Lite等专业工具来进行备份,备份生成的mysql往往都是.sql的格式,当然也可以指定其它格式。

为了方便,许多大型开源的软件直接将mysql的备份功能进行了整合,直接放到了后台进行一键备份,这就是我们看到一些后台有备份数据库的功能,这样就很方便了,利用PHP的代码就可以将mysql数据库备份下来,而不用每次再去连接数据库了。

对于利用php备份mysql数据库的原理也是很简单的,我们知道,mysql 数据库的操作是可以在命令行下面进行的,也可以在命令行下面进行备份还原数据库的操作,那么在php中也是可以进行备份还原数据库操作的,首先要进行连接数据库,然后读取数据库下面的表,将数据循环出来,再利用PHP的文件操作函数将其备份下来。

下面的源码可以把指定的数据库保存为日期.sql的格式,更改一下配置,可以直接应用到网站上面。

<?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."";
?>

标签:

给我留言