没有 php 的 PHPBB3 大量用户删除

标签 php mysql phpbb

目前我遇到了一个严重的问题,几天来论坛垃圾邮件发送者已经破坏了我的 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/

相关文章:

php - 将 PHP var 从远程 PHP 脚本获取到 JQuery

php - php 的复选框问题

php - 使用 .ajax() 返回 php 文件内容

php - 在我的站点中使用 PHPBB2 登录凭据

encryption - phpbb 论坛在没有 SSL 的域上使用什么加密?

php - 查询两个时间戳日期之间的数据

php - 数组类属性

mysql - 如何在mysql中不使用子查询来查找一些特定的记录

javascript - 使用 javascript、php 和 mysql 的动态表单字段 : strange error

php - 将 Python 或 Perl 与 PHP 集成