thinkphp实现对MySQL数据库实现备份功能
来源:互联网 发布:c语言数据类型字节数 编辑:程序博客网 时间:2024/06/03 16:14
public function exportDatabase(){header("Content-type:text/html;charset=utf-8");$path = C('ROOT_MYSQL_PATH');$model = M();//查询所有表$sql="show tables";$result=$model->query($sql);//print_r($result);exit;//echo "运行中,请耐心等待...<br/>";$info = "-- ----------------------------\r\n";$info .= "-- 日期:".date("Y-m-d H:i:s",time())."\r\n";$info .= "-- MySQL - 5.1.73 : Database - ".C('DB_NAME')."\r\n";$info .= "-- ----------------------------\r\n\r\n";$info .= "CREATE DATAbase IF NOT EXISTS `".C('DB_NAME')."` DEFAULT CHARACTER SET utf8 ;\r\n\r\n";$info .= "USE `".C('DB_NAME')."`;\r\n\r\n";// 检查目录是否存在if(is_dir($path)){//echo '目录存在';// 检查目录是否可写if(is_writable($path)){//echo '目录可写';exit;}else{echo '目录不可写';exit;//chmod($path,0777);}}else{//echo '目录不存在';exit;// 新建目录mkdir($path, 0777, true);//chmod($path,0777);}// 检查文件是否存在$file_name = $path.C('DB_NAME').'-'.date("Y-m-d",time()).'.sql';if(file_exists($file_name)){echo "数据备份文件已存在!";exit;}file_put_contents($file_name,$info,FILE_APPEND);foreach ($result as $k=>$v) {//查询表结构$val = $v['tables_in_'.C('DB_NAME')];$sql_table = "show create table ".$val;$res = $model->query($sql_table);//print_r($res);exit;$info_table = "-- ----------------------------\r\n";$info_table .= "-- Table structure for `".$val."`\r\n";$info_table .= "-- ----------------------------\r\n\r\n";$info_table .= "DROP TABLE IF EXISTS `".$val."`;\r\n\r\n";$info_table .= $res[0]['create table'].";\r\n\r\n";//查询表数据$info_table .= "-- ----------------------------\r\n";$info_table .= "-- Data for the table `".$val."`\r\n";$info_table .= "-- ----------------------------\r\n\r\n";file_put_contents($file_name,$info_table,FILE_APPEND);$sql_data = "select * from ".$val;$data = $model->query($sql_data);//print_r($data);exit;$count= count($data);//print_r($count);exit;if($count<1) continue;foreach ($data as $key => $value){$sqlStr = "INSERT INTO `".$val."` VALUES (";foreach($value as $v_d){$v_d = str_replace("'","\'",$v_d);$sqlStr .= "'".$v_d."', ";}//去掉最后一个逗号和空格$sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);$sqlStr .= ");\r\n";file_put_contents($file_name,$sqlStr,FILE_APPEND);}$info = "\r\n";file_put_contents($file_name,$info,FILE_APPEND);}echo "OK!";}编辑者:郝云云 haoyunyun888
1 0
- thinkphp实现对MySQL数据库实现备份功能
- thinkphp实现对MySQL数据库实现备份功能
- ThinkPHP 实现Mysql数据库备份
- ThinkPHP 实现Mysql数据库备份
- JAVAWEB实现数据库备份功能
- 用WATMServer实现MySQL数据库每天自动备份功能
- Java 下实现对mysql数据库的备份和恢复
- php实现备份mysql数据库
- php实现备份mysql数据库
- php实现备份mysql数据库
- 实现自动备份MySQL数据库
- 实现自动备份MySQL数据库
- java 实现mysql数据库备份
- Java实现MySQL数据库备份
- 批处理实现mysql数据库备份
- ThinkPHP分页功能实现
- ThinkPHP分页功能实现
- thinkphp实现定位功能
- 1091. Acute Stroke (30) PAT甲级
- Javascript高级编程读书笔记一
- TCP-IP协议族(二) HTTP报文头解析
- [斜率优化DP] BZOJ1096: [ZJOI2007]仓库建设
- wireshark简单抓包
- thinkphp实现对MySQL数据库实现备份功能
- 解析Javascript事件冒泡机制
- 寒假篇40
- NodeJS之重构Express路由
- java中的异或
- Tornado、Bottle以及Flask
- 挂起进程和进程的阻塞和挂起的区别
- C语言基础
- 关于三元运算符