我正在尝试将过去90天内未登录(user_lastvisit
)的帐户标记为非活动帐户(user_type = '1'
)。
user_type如果帐户是0=活动或1=不活动,则告诉phpbb
user_lastvisit是用户最后一次登录phpbb板。它以历元时间格式存储。
问题是:我不知道如何将90天添加到user_lastvisit(以epoch格式存储)中,并查看它是否小于当前时间。
$result = mysql_query("UPDATE phpbb_users SET user_type = '1' WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) < NOW() AND user_type = '0'")
or die(mysql_error());
更新:我根据以下建议编辑了查询。
查看FROM_UNIXTIME和DATE_ADD。使用这两个函数,您应该能够将时间戳转换为日期时间,然后使用它添加90天。示例:
SELECT * FROM yourtable WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) > NOW()
您可以通过管理控制面板执行此操作,而不是直接在phpBB开发人员不建议的数据库中工作。
登录ACP并选择Users and groups
选项卡。在User security
下方的底部选择"修剪用户"
在Last active
部分,将下拉框设置为Before
,然后输入90天前的日期(YYYY-MM-DD)
在此情况下,确保Delete pruned user posts
设置为No
,Deactivate or delete
设置为Deactivate
点击Submit
按钮,这将停用过去90天内未使用的所有帐户。