soa 发表于 2020-9-24 14:58:25

萌新提问,关于getbosslog和setbosslog


首先我现在想要实现一个 每日打副本次数的功能,有个大佬和我说用setbosslog就行了,然后我也是这么用了,但是实际上第二天发现数据并没有被清掉,我很疑惑,然后突然想到这类数据应该是存在数据库,于是乎就去看了数据库

然后我发现在调用setbosslog的时候,实际上会在表bosslog上面加一行新数据。
比如
setbosslog("测试");
然后表bosslog下面就会多出一个
bossid=“测试”的一行。
如果再调用

setbosslog("测试");
表bosslog下面就会再多出一个
bossid=“测试”的一行。

所以我现在大致是是这么认为,getbosslog("测试")就是获取bosslog表下面的bossid为"测试"的数量?但是如果是这样的话,在隔天也就是第二天的时候,这个表下面的所有行都应该被清掉才对,不然第二天在调用getbosslog的时候 数量不就是还会包括之前的了?

宗達 发表于 2020-9-24 15:20:45

getbosslog這函數裡面的數據庫查詢命令有一段是取24小時內的

soa 发表于 2020-9-24 15:38:45

宗達 发表于 2020-9-24 15:20
getbosslog這函數裡面的數據庫查詢命令有一段是取24小時內的

我现在getbosslog的时候,会把之前的全部都算上,很奇怪,有点懵。

soa 发表于 2020-9-24 15:46:04

宗達 发表于 2020-9-24 15:20
getbosslog這函數裡面的數據庫查詢命令有一段是取24小時內的

我看了别人写的,也都是gebosslog,看上去没有什么问题

岛霸 发表于 2020-9-29 11:31:29

1,直接打开navicat
2,新建查询
3, 复制我下面的代码
4, 执行

# 开启事件定时任务
SHOW VARIABLES LIKE '%event_scheduler%';
SET GLOBAL event_scheduler = ON;

# Linux系统 需要修改存储过程的结束符 win系统不管
delimiter $

# 定义存储过程
CREATE PROCEDURE delete_bosslog()
TRUNCATE table bosslog

# 弄完之后把存储过程还原
delimiter ;

# 设置定时任务
create event delete_bosslog_event
        on SCHEDULE every 1 day
STARTS TIMESTAMP '2020-09-29 11:18:00' # 这个时间写你数据库所在服务器的时间 记得修改时区
Do
        call delete_bosslog;
页: [1]
查看完整版本: 萌新提问,关于getbosslog和setbosslog