sys 地址 pcre 调用 all fault php代码 tab
本文出至:新太潮流网络博客
- //PHP代码部分
- /**
- * [LogAdd 操作日志]
- * @param [string] $userid [用户的ID]
- * @param [string] $type [类型]
- * @param [string] $controller_name [当前控制器的中文名称]
- * @param [string] $function_name [当前方法的中文名称]
- */
- function LogAdd($userid, $type, $controller_name, $function_name) {
- //组合数据
- $data[‘userid‘] = $userid; //当前操作的用户
- $data[‘type‘] = $type; //当前操作的类型
- $data[‘url‘] = ‘http: //‘.$_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘];//当前操作的URL地址
- $data[‘controller‘] = CONTROLLER_NAME; //当前控制器的名称
- $data[‘controller_name‘] = $controller_name; //当前控制器的中文名称
- $data[‘
- function‘] = ACTION_NAME; //当前方法的名称
- $data[‘function_name‘] = $function_name; //当前方法的中文名称
- $data[‘ip‘] = getClientIP(); //IP地址
- $data[‘create_time‘] = date(‘Y - m - d H: i: s‘, time()); //登录时间
- //表名
- $data_fun = ‘t_sys_logs_‘.date(‘Y‘, time());
- //执行原生SQL
- $Model = M();
- $results = $Model - >query(‘show tables‘); //打开库
- //组装为一维数组进行判断
- foreach($results as $k = >$v) {
- $data_table_show[] = $v[‘tables_in_dbwxapplite‘];
- }
- //先判断是否存在表
- if (in_array(strtolower($data_fun), $data_table_show)) {
- //存在表直接添加日志
- $loginLog = M($data_fun) - >add($data);
- if ($loginLog != false) {
- $res = [‘status‘ = >‘1‘, ‘result‘ = >‘写入成功‘, ‘data‘ = >$loginLog];
- } else {
- $res = [‘status‘ = >‘0‘, ‘result‘ = >‘写入失败‘, ‘data‘ = >$loginLog];
- }
- } else {
- //不存在表,先调用存储过程,在执行添加日志
- $code = $Model - >query("call spCreateTableSysLogs(".date(‘Y‘, time()).")");
- if ($code) {
- //存储过程成功则添加数据
- $loginLog = M($data_fun) - >add($data);
- if ($loginLog != false) {
- $res = [‘status‘ = >‘1‘, ‘result‘ = >‘写入成功‘, ‘data‘ = >$loginLog];
- } else {
- $res = [‘status‘ = >‘0‘, ‘result‘ = >‘写入失败‘, ‘data‘ = >$loginLog];
- }
- } else {
- //失败
- $res = [‘status‘ = >‘0‘, ‘result‘ = >‘存储过程调用失败‘, ‘data‘ = >$loginLog];
- }
- }
- return $res;
- }
- //MySQL脚本数据库部分
- -- ----------------------------
- -- Table structure for t_sys_logs_2017
- -- ----------------------------
- DROP TABLE IF EXISTS `t_sys_logs_2017`;
- CREATE TABLE `t_sys_logs_2017` (
- `logid` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘日志ID‘,
- `userid` varchar(32) NOT NULL DEFAULT ‘0‘ COMMENT ‘创建人ID‘,
- `type` varchar(8) NOT NULL COMMENT ‘日志操作类型,如:登录;注销;退出;修改密码;创建报名‘,
- `url` varchar(100) NOT NULL DEFAULT ‘www‘ COMMENT ‘当前操作的URL‘,
- `controller` varchar(30) NOT NULL DEFAULT ‘控制器的名称‘ COMMENT ‘当前控制器的名称‘,
- `controller_name` varchar(30) NOT NULL DEFAULT ‘控制器的中文名称‘ COMMENT ‘当前控制器的中文名称‘,
- `function` varchar(30) NOT NULL DEFAULT ‘方法的名称‘ COMMENT ‘当前方法的名称‘,
- `function_name` varchar(30) NOT NULL DEFAULT ‘方法的中文名称‘ COMMENT ‘当前方法的中文名称‘,
- `ip` varchar(30) NOT NULL DEFAULT ‘255.255.255.255‘ COMMENT ‘当前操作客户端IP‘,
- `create_time` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ COMMENT ‘创建时间‘,
- `update_time` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间‘,
- PRIMARY KEY (`logid`)
- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT=‘操作日志表‘;
本文出至:新太潮流网络博客
ThinkPHP执行调用存储过程添加日志
来源: http://www.bubuko.com/infodetail-2303924.html