您好,欢迎访问一九零五行业门户网

利用php把mysql数据库备份导出成sql示例

用php代码实现数据库备份可以使网站的管理变得非常便捷,我们可以直接进后台操作就能完成数据库的备份.
关键技术:
1. 首先要得到该数据库中有哪些表,所用函数 mysql_list_tables(),然后可以将获取的所有表名存到一个数组.
2. show create table 表名 可以获取表结构.
3. select * from 表名 取出所有记录,用循环拼接成 insert into... 语句.
导出成的sql语句效果,具体代码如下:
; $info = -- ----------------------------rn; $info .= -- 日期:.date(y-m-d h:i:s,time()).rn; $info .= -- power by 代潇瑞博客(http://www.phprm.com/read/34.html)rn; $info .= -- 仅用于测试和学习,本程序不适合处理超大量数据rn; $info .= -- ----------------------------rnrn; file_put_contents($to_file_name,$info,file_append); //将每个表的表结构导出到文件 foreach($tablist as $val){ $sql = show create table .$val; $res = mysql_query($sql,$link); $row = mysql_fetch_array($res); $info = -- ----------------------------rn; $info .= -- table structure for `.$val.`rn; $info .= -- ----------------------------rn; $info .= drop table if exists `.$val.`;rn; $sqlstr = $info.$row[1].;rnrn; //追加到文件 file_put_contents($to_file_name,$sqlstr,file_append); //释放资源 mysql_free_result($res); } //将每个表的数据导出到文件 foreach($tablist as $val){ $sql = select * from .$val; $res = mysql_query($sql,$link); //如果表中没有数据,则继续下一张表 if(mysql_num_rows($res)<1) continue; // $info = -- ----------------------------rn; $info .= -- records for `.$val.`rn; $info .= -- ----------------------------rn; file_put_contents($to_file_name,$info,file_append); //读取数据 while($row = mysql_fetch_row($res)){ $sqlstr = insert into `.$val.` values (; foreach($row as $zd){ $sqlstr .= '.$zd.', ; } //去掉最后一个逗号和空格 $sqlstr = substr($sqlstr,0,strlen($sqlstr)-2); $sqlstr .= );rn; file_put_contents($to_file_name,$sqlstr,file_append); } //释放资源 mysql_free_result($res); file_put_contents($to_file_name,rn,file_append); } echo ok!;
本文地址:
转载随意,但请附上文章地址:-)
其它类似信息

推荐信息