溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP執行調用存儲過程如何添加日志

發布時間:2021-01-16 11:08:02 來源:億速云 閱讀:205 作者:小新 欄目:編程語言

小編給大家分享一下ThinkPHP執行調用存儲過程如何添加日志,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

ThinkPHP執行調用存儲過程怎么添加日志

//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執行調用存儲過程如何添加日志”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女