加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

浅谈管理系统操作日志设计(附操作日志类)

发布时间:2020-12-14 03:22:22 所属栏目:大数据 来源:网络整理
导读:1 class LOG { 2 protected $primaryid ; 3 protected $tbid ; 4 protected $tbname ; 5 protected $keys ; 6 protected $values ; 7 /* * 8 * 参数说明 9 * int $tbid 查询指定表的id 10 * string $tbname 数据库表名 11 */ 12 public function insert( $tb
  1 class LOG{
  2     protected $primaryid;
  3     protected $tbid;
  4     protected $tbname;
  5     protected $keys;
  6     protected $values;
  7     /**
  8      * 参数说明
  9      * int              $tbid       查询指定表的id
 10      * string           $tbname     数据库表名
 11      */
 12     public function insert($tbid,$tbname){
 13         global $db;
 14         //查询表注释
 15         $db->query(‘show table status where name = "‘.$tbname.‘"‘);
 16         $tb = $db->fetch();
 17         //插入日志主表
 18         $returnid = $db->insert(0,2,‘tb_log‘,array(
 19             ‘adminid = ‘.$_SESSION[‘admin‘][‘id‘], 20             ‘type = 1‘, 21             ‘tableid = ‘.$tbid, 22             ‘tablename = "‘.$tbname.‘"‘, 23             ‘comment = "‘.$tb[‘Comment‘].‘"‘, 24             ‘dt = now()‘
 25         ));
 26         //查询字段注释
 27         $db->query(‘show full columns from ‘.$tbname);
 28         $tb = $db->fetchAll();
 29         foreach($tb as $v){
 30             $commentArray[$v[‘Field‘]] = $v[‘Comment‘];
 31         }
 32         //查询所有字段信息,插入日志从表
 33         $rs = $db->select(0,1,$tbname,‘*‘,‘and tbid = ‘.$tbid);
 34         $keys = array_keys($rs);
 35         $values = array_values($rs);
 36         for($i = 0; $i < count($keys); $i++){
 37             $db->insert(0,‘tb_log_content‘,array(
 38                 ‘logid = ‘.$returnid, 39                 ‘tbkey = "‘.$keys[$i].‘"‘, 40                 ‘tbvalue = "‘.$values[$i].‘"‘, 41                 ‘comment = "‘.$commentArray[$keys[$i]].‘"‘
 42             ));
 43         }
 44     }
 45     public function updateStart($tbid,$tbname){
 46         global $db;
 47         //查询表注释
 48         $db->query(‘show table status where name = "‘.$tbname.‘"‘);
 49         $tb = $db->fetch();
 50         //插入日志主表
 51         $returnid = $db->insert(0,array(
 52             ‘adminid = ‘.$_SESSION[‘admin‘][‘id‘], 53             ‘type = 2‘, 54             ‘tableid = ‘.$tbid, 55             ‘tablename = "‘.$tbname.‘"‘, 56             ‘comment = "‘.$tb[‘Comment‘].‘"‘, 57             ‘dt = now()‘
 58         ));
 59         //查询修改前数据信息
 60         $rs = $db->select(0,‘and tbid = ‘.$tbid);
 61         $keys = array_keys($rs);
 62         $values = array_values($rs);
 63         $this->primaryid = $returnid;
 64         $this->tbid = $tbid;
 65         $this->tbname = $tbname;
 66         $this->keys = $keys;
 67         $this->values = $values;
 68     }
 69     public function updateEnd(){
 70         global $db;
 71         //查询字段注释
 72         $db->query(‘show full columns from ‘.$this->tbname);
 73         $tb = $db->fetchAll();
 74         foreach($tb as $v){
 75             $commentArray[$v[‘Field‘]] = $v[‘Comment‘];
 76         }
 77         //查询修改后数据信息
 78         $rs = $db->select(0,$this->tbname,‘and tbid = ‘.$this->tbid);
 79         $currentvalues = array_values($rs);
 80         //前后信息进行比较
 81         for($i = 0; $i < count($currentvalues); $i++){
 82             if($this->values[$i] !== $currentvalues[$i]){
 83                 $db->insert(0,array(
 84                     ‘logid = ‘.$this->primaryid, 85                     ‘tbkey = "‘.$this->keys[$i].‘"‘, 86                     ‘tbvalue = "‘.$this->values[$i].‘"‘, 87                     ‘currenttbvalue = "‘.$currentvalues[$i].‘"‘, 88                     ‘comment = "‘.$commentArray[$this->keys[$i]].‘"‘
 89                 ));
 90             }
 91         }
 92     }
 93     public function delete($tbid,$tbname){
 94         global $db;
 95         //查询表注释
 96         $db->query(‘show table status where name = "‘.$tbname.‘"‘);
 97         $tb = $db->fetch();
 98         //插入日志主表
 99         $returnid = $db->insert(0,array(
100             ‘adminid = ‘.$_SESSION[‘admin‘][‘id‘],101             ‘type = 3‘,102             ‘tableid = ‘.$tbid,103             ‘tablename = "‘.$tbname.‘"‘,104             ‘comment = "‘.$tb[‘Comment‘].‘"‘,105             ‘dt = now()‘
106         ));
107         //查询字段注释
108         $db->query(‘show full columns from ‘.$tbname);
109         $tb = $db->fetchAll();
110         foreach($tb as $v){
111             $commentArray[$v[‘Field‘]] = $v[‘Comment‘];
112         }
113         //查询所有字段信息,插入日志从表
114         $rs = $db->select(0,‘and tbid = ‘.$tbid);
115         $keys = array_keys($rs);
116         $values = array_values($rs);
117         for($i = 0; $i < count($keys); $i++){
118             $db->insert(0,array(
119                 ‘logid = ‘.$returnid,120                 ‘tbkey = "‘.$keys[$i].‘"‘,121                 ‘tbvalue = "‘.$values[$i].‘"‘,122                 ‘comment = "‘.$commentArray[$keys[$i]].‘"‘
123             ));
124         }
125     }
126 }

?

?

 1 -- ----------------------------
 2 -- Table structure for `tb_log`
 3 -- ----------------------------
 4 CREATE TABLE `tb_log` (
 5   `tbid` bigint(20) NOT NULL AUTO_INCREMENT, 6   `adminid` bigint(20) DEFAULT NULL COMMENT ‘管理员id‘, 7   `type` tinyint(4) DEFAULT ‘1‘ COMMENT ‘操作类型:1新增2修改3删除‘, 8   `tableid` bigint(20) DEFAULT NULL, 9   `tablename` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT ‘表名‘,10   `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,11   `dt` datetime DEFAULT NULL,12   PRIMARY KEY (`tbid`)
13 ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
14  
15 -- ----------------------------
16 -- Table structure for `tb_log_content`
17 -- ----------------------------
18 CREATE TABLE `tb_log_content` (
19   `tbid` bigint(20) NOT NULL AUTO_INCREMENT,20   `logid` bigint(20) DEFAULT NULL,21   `tbkey` longtext COLLATE utf8_unicode_ci,22   `tbvalue` longtext COLLATE utf8_unicode_ci,23   `currenttbvalue` longtext COLLATE utf8_unicode_ci,24   `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,25   PRIMARY KEY (`tbid`)
26 ) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读