目前我遇到了一个严重的问题,在几天之内,论坛垃圾邮件发送者已经破坏了我的phpbb3论坛并发布了如此多的主题和帖子,这对ACP群众剪辑功能来说太过分了(它总是失去记忆,我不能多给它。)
所以,我想知道,他们是从数据库本身删除这些用户和帖子的方法,所以我不需要任何php交互?或者用Perl / Python编写的phpbb用户修剪函数可以随着时间的推移运行吗?
我在网上搜索过,每个网站都说“使用ACP”,但此刻对我来说是不可能的。
答案 0 :(得分:3)
执行此操作的半手动方式是转到每个垃圾邮件用户的个人资料,选择Administer User
,然后在Overview
(默认)页面的底部,选择Delete Posts
。这将删除该特定用户及其所有相关主题。这是推荐的方式。
另一个选择是减少修剪用户页面上的条件。设置较小的日期窗口,设置更具体的帖子标准等。
如果上述方法不起作用,则此topic也会指出一些可能有用的非常危险的查询,但它只会删除没有关联用户的主题。如果您运行查询并且超时,则可能出现这种情况。查询的一部分已运行。
请记住,PHPBB NOT 建议直接运行查询。我提供的前两个选项是他们推荐的删除大量用户和帖子的方法。对您的数据库运行危险(翻译:先备份)
查询1 - 删除搜索结果:
delete from phpbb_search_wordmatch where post_id in
(SELECT post_id
FROM `phpbb_posts`
WHERE topic_id
IN (
SELECT topic_id
FROM phpbb_topics
WHERE `topic_poster` NOT
IN (
SELECT user_id
FROM phpbb_users
)
)
)
查询2 - 删除主题:
DELETE
FROM `phpbb_topics`
WHERE `topic_poster` NOT
IN (
SELECT user_id
FROM phpbb_users
)
查询3 - 删除帖子:
DELETE
FROM `phpbb_posts`
WHERE topic_id
IN (
SELECT topic_id
FROM phpbb_topics
WHERE `topic_poster` NOT
IN (
SELECT user_id
FROM phpbb_users
)
)