溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程如何添加日志

發(fā)布時(shí)間:2021-01-16 11:08:02 來(lái)源:億速云 閱讀:173 作者:小新 欄目:編程語(yǔ)言

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

ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程怎么添加日志

//PHP代碼部分/**
 * [LogAdd 操作日志]
 * @param [string] $userid          [用戶的ID]
 * @param [string] $type            [類型]
 * @param [string] $controller_name [當(dāng)前控制器的中文名稱]
 * @param [string] $function_name   [當(dāng)前方法的中文名稱]
 */function LogAdd($userid,$type,$controller_name,$function_name){
    //組合數(shù)據(jù)
    $data['userid'] = $userid;//當(dāng)前操作的用戶
    $data['type'] = $type;//當(dāng)前操作的類型
    $data['url'] = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//當(dāng)前操作的URL地址
    $data['controller'] = CONTROLLER_NAME;//當(dāng)前控制器的名稱
    $data['controller_name'] = $controller_name;//當(dāng)前控制器的中文名稱
    $data['function'] = ACTION_NAME;//當(dāng)前方法的名稱
    $data['function_name'] = $function_name;//當(dāng)前方法的中文名稱
    $data['ip'] = getClientIP();//IP地址
    $data['create_time'] = date('Y-m-d H:i:s',time());//登錄時(shí)間
    //表名
    $data_fun = 't_sys_logs_'.date('Y',time());
    //執(zhí)行原生SQL
    $Model = M();
    $results = $Model->query('show tables');//打開(kāi)庫(kù)
    //組裝為一維數(shù)組進(jìn)行判斷
    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' => '寫(xiě)入成功','data' => $loginLog];
        }else{
            $res = ['status' => '0','result' => '寫(xiě)入失敗','data' => $loginLog];
        }
    }else{
        //不存在表,先調(diào)用存儲(chǔ)過(guò)程,在執(zhí)行添加日志
        $code = $Model->query("call spCreateTableSysLogs(".date('Y',time()).")");
        if($code){
            //存儲(chǔ)過(guò)程成功則添加數(shù)據(jù)
            $loginLog = M($data_fun)->add($data);
            if($loginLog != false){
                $res = ['status' => '1','result' => '寫(xiě)入成功','data' => $loginLog];
            }else{
                $res = ['status' => '0','result' => '寫(xiě)入失敗','data' => $loginLog];
            }
        }else{
            //失敗
            $res = ['status' => '0','result' => '存儲(chǔ)過(guò)程調(diào)用失敗','data' => $loginLog];
        }
    }
    return $res;}
//mysql腳本數(shù)據(jù)庫(kù)部分-- ------------------------------ 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 '創(chuàng)建人ID',
  `type` varchar(8) NOT NULL COMMENT '日志操作類型,如:登錄;注銷(xiāo);退出;修改密碼;創(chuàng)建報(bào)名',
  `url` varchar(100) NOT NULL DEFAULT 'www' COMMENT '當(dāng)前操作的URL',
  `controller` varchar(30) NOT NULL DEFAULT '控制器的名稱' COMMENT '當(dāng)前控制器的名稱',
  `controller_name` varchar(30) NOT NULL DEFAULT '控制器的中文名稱' COMMENT '當(dāng)前控制器的中文名稱',
  `function` varchar(30) NOT NULL DEFAULT '方法的名稱' COMMENT '當(dāng)前方法的名稱',
  `function_name` varchar(30) NOT NULL DEFAULT '方法的中文名稱' COMMENT '當(dāng)前方法的中文名稱',
  `ip` varchar(30) NOT NULL DEFAULT '255.255.255.255' COMMENT '當(dāng)前操作客戶端IP',
  `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '創(chuàng)建時(shí)間',
  `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',
  PRIMARY KEY (`logid`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';

以上是“ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程如何添加日志”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI