null

暂无访客记录

详情
评论
问答
赞助

昨天,一不小心的失误,导致了很多帖子的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里面不存在了,但他的帖子并未删除,那么这些帖子是恢复不了的。当然,这无伤大雅。

教训:无论如何,操作数据库要先备份,哪怕搞定了以后再删除。

温馨提示:本文最后更新于2022/10/20 00:49:12。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享

您可以通过搜索或浏览分类列表来找到您期望下载的资源。随后点击资源介绍页右侧的下载链接按钮,依据提示信息进行操作即可。

大部分资源可积分免费下载,为了维持网站的运行小部分资源须付费才能下载。

本站提供的下载资源均为网络搜集,仅供个人学习和交流使用。对于版权问题,请用户自行判断并承担相应责任。

随着时间的推移,维持网站的运行需要支出高昂的服务器和带宽费用。为了能继续坚持免费做下去,如果觉得文章对您有用,希望您能动动发财的小手免费赞助狐狸,给狐狸加油打气!激励狐狸库继续创作下去!谢谢!

在互联网的浩瀚海洋中,我们的网站就像一座明亮的灯塔,为无数用户照亮前行的道路。它承载着知识的传递、梦想的交流,以及大家共同的回忆与期待。然而,运营和维护这样一个网站需要投入大量的心血与资金。

现在,您只需通过支付宝扫码领红包,就能轻松成为我们的赞助人。这不仅是一次简单的支持,更是您与网站共同成长的见证。操作简单,打开支付宝,扫描专属二维码,您的每一份心意都将化作网站发展的动力。

您的赞助,能让网站不断升级,提供更优质的服务,给大家带来更好的体验。让我们携手共进,让这座灯塔绽放更耀眼的光芒,照亮更多人的网络世界 。

下面是免费赞助的方法和流程

  1. 下面图一是本站的支付宝每日领红包二维码,使用支付宝扫描二维码后会自动显示红包金额,有任意小额金额红包。
  2. 点击“去使用”,再扫描第三张图的二维码进行付款即可。
  3. 上面扫到多少红包就输入多少金额,红包会自动抵扣金额,所以不需要额外费用。
  4. 如需赞助自定义金额请到【赞助狐狸】页面进行赞助。
  5. 这个扫码红包是每天都可以领的哦,支持同账号重复,每天花一分钟时间即可免费支持本站!
扫码红包 红包图 扫码支付
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容