我正在将我的网站从http迁移到https。除了由名为Revolution slider的插件制作的幻灯片外,一切顺利。
我检查了MySQL数据库并找到了这样的条目:
{“background_type”:“image”,“image”:“http:\ / \ / example.com \ / wp-content \ / uploads \ / 2014 \ / 03 \ / Banner_1.jpg”,
通常我会使用NotePad ++或Phpmyadmin并进行搜索替换:
UPDATE x_posts SET y = REPLACE (post_content, 'http://www.example.com', 'https://www.example.com');
但是由于使用:\ / \ /这不能按预期工作。当我进行全局数据库搜索时,我甚至无法找到有问题的域。
是否可以编写查询来修复位于xr_revslider_slides / params中的这些幻灯片?
ps我必须添加空格以防止自动转换为://
答案 0 :(得分:1)
这是一个理论,但也许您的数据存储带有额外的斜杠而不仅仅是json检索问题?
在这种情况下,
UPDATE x_posts SET y = REPLACE (post_content, 'http:\/\/www.example.com', 'https://www.example.com');
会这样做。
答案 1 :(得分:1)
JSON使用反斜杠转义正斜杠。
MySQL期望使用反斜杠转义查询中的反斜杠,否则反斜杠会被解释为转义字符。
MySQL查询中的文字字符串\
写为\\
,因此:
UPDATE x_posts
SET y = REPLACE (post_content, 'http:\\/\\/www.example.com', 'https:\\/\\/www.example.com');
https://dev.mysql.com/doc/refman/5.7/en/string-literals.html