thinkphp实现对MySQL数据库实现备份功能
来源:互联网 发布:第一网红 知乎 编辑:程序博客网 时间:2024/06/03 17:53
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!"; }
阅读全文
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实现定位功能
- jQuery Validation Plugin
- react入门
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- UNITY SHADER学习笔记2(unity 5.6)
- 5000点不是梦的大多头任泽平离职,新周期理论也胎死腹中了吗?
- thinkphp实现对MySQL数据库实现备份功能
- 每天一道算法题——合并两个排序的链表
- 判断N维矩阵是否是Monge矩阵的Java实现
- Unity之Mecanim动画系统笔记
- GS01/GS02/GS03 Set and transport request
- zookeeper典型应用场景之一:master选举
- OpenCV笔记(3)图像简单处理
- iOS中GCD的使用小结
- 编码格式设置-----微信/QQ等分享链接中含中文参数时