加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Discuz 提示"该用户已被删除"的解决办法

发布时间:2021-03-31 19:53:49 所属栏目:教程 来源:网络整理
导读:昨天,一不警惕的失误,导致了许多帖子的authorid变换,使得变换后的帖子表现xx 该用户已被删除的提醒。 缘故起因是把x替代成xxxx导致的,于是当即把xxxx替代回x,功效依然只办理了部门帖子,忧郁。 于是查缘故起因。 原本,那些非常的帖子的cdb_posts.authorid和cdb_

昨天,一不警惕的失误,导致了许多帖子的authorid变换,使得变换后的帖子表现“xx 该用户已被删除”的提醒。

缘故起因是把x替代成xxxx导致的,于是当即把xxxx替代回x,功效依然只办理了部门帖子,忧郁。

于是查缘故起因。
原本,那些非常的帖子的cdb_posts.authorid和cdb_threads.authorid都酿成了16777215,也许是我几经替代后,该项值到达了最大值,以是都酿成了这个。
那至少好办些了,往往authorid为166777215的帖子和主题都是不正常帖子。

溘然想到小小宇的QQ农场用户迁徙的要领,功效实行下来,不可。
他的MySQL和PHP的语句都是错误的。

看来只有清算思绪,另寻他法了。

===============================================

思绪:列出全部authorid为16777215的帖子和主题,用与cdb_posts.author沟通的cdb_members.username对应的cdb_members.uid替代cdb_posts.authorid和cdb_threads.authorid

历经历尽艰辛,还用了join的MySQL语句,终于学会了如那里理赏罚。

起首,要验证本身的语句是否正确,那么用SELECT检讨一下:SELECT cdb_members.uid,cdb_members.username,cdb_posts.tid,cdb_posts.pid,cdb_posts.author,cdb_posts.authorid FROM (cdb_members,cdb_posts) WHERE cdb_posts.authorid=16777215 and cdb_posts.author=cdb_members.username and cdb_posts.tid=242950
讲解:从cdb_members和cdb_posts列出cdb_members.uid,cdb_posts.authorid ,而且满意cdb_posts.authorid=16777215的前提,且cdb_posts.author=cdb_members.username逐一对应(沟通)。为了以防万一并镌汰查询时刻,加上cdb_posts.tid=242950这个前提。

看了下功效,是对的,且用户名逐一对应(uid与authorid差池应)。

然后又费精心思,终于找到了怎样变动authorid=uid的要领。

单独修复某一个会员的帖子的要领://单独的规复方法 作者和作者ID要填对 如下例子

UPDATE cdb_posts set authorid=61620 WHERE authorid=16777215 and author='purlada'
讲解:把cdb_posts中authorid为16777215且作者是purlada的帖子的authorid替代成61620(purlada的uid)

批量修复全部表现“该用户已被删除”的帖子的要领://批量规复方法 自动查询cdb_members表中的uid匹配到cdb_posts表中的authorid上,条件是db_posts.author=cdb_members.username就是说用户名必需沟通,以免错匹配。去掉最后的and是不限主题,也就是所有规复。

update cdb_posts,cdb_members set cdb_posts.authorid=cdb_members.uid WHERE cdb_posts.authorid=16777215 and cdb_posts.author=cdb_members.username and cdb_posts.tid=242950

update cdb_threads,cdb_members set cdb_threads.authorid=cdb_members.uid WHERE cdb_threads.authorid=16777215 and cdb_threads.author=cdb_members.username and cdb_threads.tid=242950
讲解:要害在cdb_posts.author=cdb_members.username这里,这是为了担保两者对应的环境下用uid替代authorid

终于,规复了。
可是尚有一个题目,就是:假如一些用户被删除了,也就是说某些用户在cdb_members内里不存在了,但他的帖子并未删除,那么这些帖子是规复不了的。虽然,这无感冒雅。

教导:无论怎样,操纵数据库要先备份,哪怕搞定了往后再删除。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读