数据库操作日志并通过日志进行不同数据库的备份

        $_POST['_id'] = $s['$id'];        //添加返回的id数
        $_POST['translate'] = 'insert';    //代表添加操作
        $str = json_encode($_POST)."\n";//json数据
        $dir = '../ceshi';                //操作日志所在路径
        $dir_arr = scandir($dir);        //读取目录
        $k = count($dir_arr)-1;            //最后一个文件
        $varr = 5;                        //每个日志文件存储条数
        if($k>1){                        //日志路径有文件
            $varr = count(file($dir.'/'.$dir_arr[$k]));    //读取最后一个文件判断条数
        }
        if($varr==5||$k<=1){            //如果等于设定条数或者没有文件存在创建新文件并写入内容
            file_put_contents("../ceshi/".time().".txt",$str);
        }else{                            //有文件并且小于设定条数追加进文件
            file_put_contents($dir.'/'.$dir_arr[$k],$str,FILE_APPEND);

        }

//------其他操作雷同

    $dir = '../ceshi';  //日志路径---与你所设定的日志路径相同
    $dir_arr = scandir($dir); //读取目录
    $len = count($dir_arr)-1; //留最后一个文件
    for($i=2;$i<$len;$i++){
        $marr = file($dir.'/'.$dir_arr[$i]);  //读取文件
        //unlink($dir.'/'.$dir_arr[$i]);  //删除文件
        $narr['insert'] = array();
        $narr['update'] = array();
        $narr['remove'] = array();
        foreach($marr as $v){
            $s = json_decode($v,true);
            $k = $s['translate'];    //操作类型
            $t = $s['table'];        //操作的哪一个表
            unset($s['translate']);
            unset($s['table']);
            $narr[$k][$t][] = $s;  //重新赋值
        }
        //添加操作
        foreach($narr['insert'] as $key => $val){
            echo $key.'-----';
            $str = array();  //$key 操作的表名
            foreach($val as $k => $v){ //拼接字符串数据
                foreach($v as $kk => $vv){
                    $vi[$kk] = "'".$vv."'";
                }
                $str[] = '('.implode(',',$vi).')';
            }
            echo implode(',',$str).'<br />'; //最终拼接
            //--------执行sql语句复制---------//
        }
        //修改操作
        foreach($narr['update'] as $key => $val){
            echo $key.'-----';
            foreach($val as $v){
                echo $v['upid'].'<br />';
                unset($v['upid']);
                var_dump($v);
            }
            //--------执行sql语句复制---------//
        }
        //删除操作
        foreach($narr['remove'] as $key => $val){
            echo $key.'-----';
            $id = array();
            foreach($val as $v){
                $id[] = $v['id'];
            }
            if(count($id)==1){
                echo $id['0'];  //一个id等于号删除
            }else{
                echo '('.implode(',',$id).')<br />';
            }
            //--------执行sql语句复制---------//
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值