在数据库中搜索并将“http”替换为“https”

新手上路,请多包涵

使用 phpmyadmin ,我想运行一个查询来搜索我的 整个 数据库:

 http://example.com

并替换为:

 https://example.com

我的 SQL 知识有限,可能是这样的:

 UPDATE ?? = REPLACE(??, 'http://example.com', 'https://example.com');

数据库超过 1gb,所以我可以运行什么 不会 使服务器崩溃。

更新:请注意,虽然在 SO 上发布了其他处理搜索和替换的答案,但它们似乎并未涵盖整个数据库。

原文由 Henrik Petterson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 778
1 个回答

警告,到目前为止给出的答案会弄乱序列化数据!

例如,假设您的站点将序列化数据存储在一行中,其中包含 URL,如下所示:

 a:1:{i:0;s:19:”http://example.com”;}

请注意,此项的值有 19 个字符,在数组中用 s:19 表示。

如果您使用 SQL 查询替换内容,则新环境中的同一行最终将如下所示:

 a:1:{i:0;s:19:”https://example.com”;}

但是在此更改之后,该值现在是 20 个字符长,这意味着 s:19 不正确。这会使数组和整行无效。

因此,要么确保你的 SQL 语句处理序列化数据,要么如果你碰巧使用 WordPress,那么有几个选项可以使用 PHP 进行搜索,以免破坏序列化的行:

取自并改编自: https ://wpengine.com/support/wordpress-serialized-data/

原文由 Redoman 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题