A-A+

php备份mysql的源代码

2014年07月13日 PHP技术文章 评论 7 条 阅读 189 views 次

作为开发者,数据的备份至关重要,尤其是数据库的备份,在我们对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."";
?>

标签:

7 条留言  访客:7 条  博主:0 条

  1. 南京工程师评审

    博主是高手,学习了

  2. 张戈博客

    表示很需要这个功能~~回头抛弃插件来参考下这。

  3. 纳学培训网

    着能用吗,欢迎互访哦

  4. 纳学培训网

    好东西,欢迎互访

  5. 南京网络营销

    太深奥啦,互访哦

  6. 长春驾校

    博客做的不错,也想做一个但是不知道做博客有什么用,做博客的利润点在什么地方呢,感觉应该就是玩玩,没什么太大的用,还不如做个综合性网站了,最近想做一个SEO的博客接点业务呵呵

    • smiling

      成功的博客不好坚持,但实际门槛很低,综合性的站点做成功很难,需要花费不少精力和人力.

给我留言