小編給大家分享一下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執行調用存儲過程如何添加日志”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。