最近一个站,发现内容细节有一些多余的内容,就相要通过在PhpMyAdmin上写Mysql文本批量替换语句去实现。
可最终,无论怎么调整语句去批量替换也达不到自己想要的结果。
没有办法,只能自建PHP脚本去实现这个批量替换文本的目标。
脚本代码如下,你们可以拿去作为参考。
文章目录
代码:
<?php
// 数据库连接信息
$servername = "XXXXXX"; // 你的数据库服务器地址
$username = "XXXXXX"; // 数据库用户名
$password = "XXXXXX"; // 数据库密码
$dbname = "XXXXXX"; // 数据库名称
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询需要替换的内容
$sql = "SELECT ID, post_content FROM wp_posts WHERE post_content REGEXP '(@[a-zA-Z0-9_\.]+)'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 准备更新语句
$update_sql = $conn->prepare("UPDATE wp_posts SET post_content = ? WHERE ID = ?");
// 遍历查询结果
while ($row = $result->fetch_assoc()) {
$post_id = $row["ID"];
// 使用正则表达式进行替换
$post_content = preg_replace('/\(@[a-zA-Z0-9_\.]+\)/', '', $row["post_content"]);
// 绑定参数并执行更新语句
$update_sql->bind_param("si", $post_content, $post_id);
if ($update_sql->execute() === TRUE) {
echo "ID为 $post_id 的内容替换成功<br>";
} else {
echo "ID为 $post_id 的内容替换失败: " . $update_sql->error . "<br>";
}
}
// 关闭预处理语句
$update_sql->close();
} else {
echo "没有找到需要替换的内容";
}
// 关闭连接
$conn->close();
?>
使用方法:
使用方法也很简单,只要在网站根目录下面新建一个自定义名称的PHP文件,把这个代码粘到里面并保存,然后,在线运行这个PHP文件就可以了。
注意事项:
为了防止出错,
在运行这个脚本之前:备份网站数据库。
在运行这个脚本之后:在网站根目录删除这个文件。(安全考虑,因为它里面包含了数据库信息。)
是不是很简单,你学会了吗?
评论