批量查询并替换数据库中指定内容的PHP脚本,可随意保存为1.PHP等,放置在网站目录,用浏览器访问:
<?php
// 数据库连接配置
$servername = "localhost";
$username = "root";
$password = "your_password"; // 替换为你的数据库密码
$dbname = "your_database"; // 替换为你的数据库名称
$search = "aaa.cn"; // 你要替换的原内容或域名
$replace = "bbb.com"; //替换为新的内容或域名
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 从 COLUMNS.sql 中提取表和字段信息
// 这里我们直接查找所有表和字段的例子
$sql = "SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = '$dbname'
AND DATA_TYPE IN ('char', 'varchar', 'text', 'mediumtext', 'longtext')";
$result = $conn->query($sql);
// 创建或覆盖替换命令的 SQL 文件
$file = fopen("replace_commands.sql", "w");// 这里是查询结果保存的SQL文件,需要加上保存路径,如和本PHP脚本同网站目录,PHP脚本用网站地址打开运行。
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$table = $row['TABLE_NAME'];
$column = $row['COLUMN_NAME'];
// 生成替换命令
$sql_command = "UPDATE `$table` SET `$column` = REPLACE(`$column`, '$search', '$replace') WHERE `$column` LIKE '%$search%';\n";
fwrite($file, $sql_command);
}
} else {
echo "没有找到结果";
}
fclose($file);
$conn->close();
echo "SQL更新命令已生成,并保存到 replace_commands.sql 文件中";
?>
注意:
使用本PHP脚本运行得到保存的SQL查询结果文件后,在需要操作的数据库打开后,使用phpmysql的SQL命令工具,再点击导入此SQL文件即可(导入前请查看此SQL查询结果文件是否正确)