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

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享