0

0

ThinkPHP执行调用存储过程怎么添加日志

WJ

WJ

发布时间:2020-05-30 11:06:06

|

3410人浏览过

|

来源于51dev.com

转载

ThinkPHP执行调用存储过程怎么添加日志

ThinkPHP执行调用存储过程怎么添加日志

AdMaker AI
AdMaker AI

从0到爆款高转化AI广告生成器

下载
//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='操作日志表';

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号