库表的备份

header("Content-type:text/html;charset=utf-8");
            $datalist = "所有的数据表数组";
            //1.生成文件名
            $filename = 数据库名称.".sql";
            //判断文件是否存在 如果存在就删除 从新生成
            if(is_file($filename)){
                unlink($filename);
            }
            //2遍历表名称
            foreach($datalist as $k=>$v){
                $str  = "-- ---------------------------------\r\n";
                $str .= "-- Table structure for `".$v."` \r\n";
                $str .= "-- ---------------------------------\r\n";
                //3.查询表结构
                $columns = DB::query("show create table $v");
                $str .=$columns[0]['Create Table'].";\r\n";
                //4.生成数据
                $str .= "-- ----------------------------------------------\r\n";
                $str .= "-- Records for `".$v."` \r\n";
                $str .= "-- ----------------------------------------------\r\n";
                file_put_contents($filename,$str,FILE_APPEND);
                //5.获取表的数据
                $sql = "select * from $v";
                $data = DB::query($sql);
                if(count($data)>0){
                    foreach($data as $key=>$val){
                        $sqlStr  = "INSERT INTO `$v` VALUES(";
                        foreach($val as $keys=>$vals){
                            $sqlStr .= '"'.$vals.'", ';
                        }
                        //去掉最后一个逗号和空格
                        $sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
                        $sqlStr.=");\r\n";
                        //7.生成最终文件
                        file_put_contents($filename,$sqlStr,FILE_APPEND);
                    }
                }
                //从新生成$str $sqlstr;
                $str='';
                $sqlStr='';
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值