Discuz X3.X通过数据库批量替换修改帖子内容

客户的网站发现无意中发现论坛某个栏目的贴子被批量插入广告了。一个一个的删除太费劲,只能在数据库批量替换删除了。Discuz X3.X论坛后台提供数据库SQL语句操作的功能,但是默认情况下出于安全考虑,该功能是被关闭的,所以得先修改下配置文件,方法如下:(这破程序,官方都已经停止更新了,客户还在用由于客户没有技术也不想多花钱所以找我帮忙)

找到论坛程序文件config/config_global.php,用记事本打开该文件,然后查找$_config[‘security’][‘querysafe’][‘status’]将其设置为0,继续查找$_config[‘admincp’][‘runquery’]将其设置为1即可。(出于安全考虑,建议执行SQL语句完毕后将这两个参数的值再改回来)

然后进入管理后台→站长→数据库→升级 执行以下代码:

UPDATE pre_forum_post SET message=REPLACE(message,'需要替换的内容','替换后的内容'); 

我这里需要替换的字符为:ШШ  那么就执行以下代码。

bst20181022145631
bst20181022145641

替换成功后,别忘记把配置文件里面修改的两项恢复回来。

注意:在论坛后台或者phpmyadmin执行SQL语句,操作前请先备份数据库!

如果是Discuz!7.2及以前的版本这种更古老的版本请使用以下语句:

update cdb_posts set message = replace(message, 'userdirs/a/1/5z6z/attachments', 'attachments');

适用于Discuz! X

update pre_portal_article_content set content = replace(content,'原内容','替换内容');
说明如下:
update 就是更新的意思
pre_portal_article_content 就是要替换的表,这个是门户的文章内容
set 就是设置的意思
content 就是pre_portal_article_content 里的字段,这里面是保存文章内容的
replace 就是替换的意思
'原内容' 引号里的内容就是需要替换的
'替换内容'引号里的内容就是要替换后的
替换其他内容方法和原理都是一样的,就是改下表,字段,内容

未经允许不得转载:OZ分享-吉家大宝官方博客 » Discuz X3.X通过数据库批量替换修改帖子内容

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

置顶文章