1

我已经搜索过这个,许多其他人都在谈论替换命令,但我不想犯错。

我的情况是:我有一个 Wordpress 博客和一个在帖子中插入内容的脚本。现在我想删除这个新内容,但保留旧内容。

它类似于“这是关于我的帖子的内容”它的旧内容,现在脚本插入另一行,该字段的值看起来像"This is content of a post about me <div class="spnsor"><a [...]</div>".

在这一部分中,我有一个不同的链接,从一个帖子到另一个帖子。但是是具有相同 div 和类的相同结构。

我有超过 2000 个帖子,所以要编辑每个帖子。

如何从 Mysql 解决这个问题?

这个命令可以吗? UPDATE wp_posts SET post_content = REPLACE ( post_content, '<div class="spnsor">*</div>', '' )

4

1 回答 1

0

如果你可以访问 MySQL 服务器,你可以看这里:如何在 MySQL 中进行正则表达式替换?

如果没有,最简单的方法是在 php 脚本中进行替换。

编辑:

一个简单的 php 脚本。我还没有测试过它,但它应该可以工作(在本地备份之前尝试)

<?php

    $co = mysql_connect("your server", "your login", "your password");
    mysql_set_charset('utf8');
    mysql_select_db("database name", $co);

    $selectQuery = "SELECT ID, post_content FROM wp_posts";

    $res = mysql_query($selectQuery, $co) or exit(mysql_error());

    while($row = mysql_fetch_assoc($res))
    {
        $updateQuery = "UPDATE wp_posts SET post_content = '" . addslashes(preg_replace("/<div class=\"sponsor\">(.*)<\/div>/", '', $row['post_content'])) . "' WHERE ID = " . $row['ID'];
        mysql_query($updateQuery) or exit(mysql_error());
    }

    mysql_close($co);

?>
于 2011-02-26T19:43:17.340 回答