目前我遇到了一个严重的问题,几天来论坛垃圾邮件发送者已经破坏了我的 phpbb3 论坛并发布了如此多的主题和帖子,以至于 ACP 批量删除功能无法处理(它总是内存不足,我不能给它更多)。
所以,我想知道,他们是否可以从数据库本身删除这些用户和帖子,这样我就不需要任何 php 交互?或者用 Perl/Python 编写的可以随时间运行的 phpbb 用户修剪函数?
我在网上搜索过,每个网站都只说“使用 ACP”,但目前这对我来说是不可能的。
最佳答案
半手动的方法是转到每个垃圾邮件用户的个人资料,选择Administer User
,然后在Overview
(默认)页面的底部,选择 删除帖子
。这将删除该特定用户及其所有相关主题。这是推荐的方式。
另一种选择是减少修剪用户页面上的标准。设置更小的日期窗口,设置更具体的发布标准等。
如果上述方法不起作用,这 topic还指出了一些可能有用的非常危险查询,但它只会删除没有关联用户的主题。如果您运行查询并超时,则很可能就是这种情况。部分查询已运行。
请记住,PHPBB 不建议直接运行查询。我提供的前两个选项是他们推荐的删除大量用户和帖子的方法。这些对您的数据库运行危险(翻译:首先进行备份)
查询 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
)
)
关于没有 php 的 PHPBB3 大量用户删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115810/